* [PATCH 1/5] ARM: EXYNOS: Add SPDX license identifier
From: Krzysztof Kozlowski @ 2018-01-03 17:47 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1514231675-17582-1-git-send-email-krzk@kernel.org>
On Mon, Dec 25, 2017 at 08:54:31PM +0100, Krzysztof Kozlowski wrote:
> Replace GPL license statements with a SPDX license indentifiers (GPL-2.0
> and GPL-2.0+).
>
> Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Applied all.
Best regards,
Krzysztof
^ permalink raw reply
* [EXT] Re: [PATCH net-next 5/6] arm64: dts: marvell: mcbin: enable the fourth network interface
From: Russell King - ARM Linux @ 2018-01-03 17:54 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <0e95e9b20e2d42bc95e04034bd88e781@IL-EXCH01.marvell.com>
On Wed, Jan 03, 2018 at 05:00:47PM +0000, Stefan Chulski wrote:
> > > > -----Original Message-----
> > > > Hi Russell,
> > > >
> > > > Indeed. RGMII MAC behaves same way, although it shouldn't be named
> > > > as 'in- band' to be on par with the specifications. Anyway - this
> > > > one is rather a stub for being able to work with ACPI, so once the
> > > > MDIO bus works there, this will be out of any concerns.
> > >
> > > Hi Marcin,
> > >
> > > This is correct.
> > > "in-band" supported only for SGMII mode.
> > > IRQ link interrupt depend on "in-band"' auto negation only if "in-band"'
> > enabled.
> > > But IRQ link interrupt could be triggered with "in-band", "out-band" or with
> > specific fixed speed/duplex/flow_contol.
> >
> > Hi Stefan,
> >
> > How does this work in RGMII mode - is this handled by the PP2 polling the PHY
> > to get the speed, duplex and flow control settings?
> >
>
> IRQ interrupt doesn't handled speed, duplex and flow control settings.
> It's just raised if number of criterions met:
> 1) Physical signal detected by MAC
> 2) MAC auto negotiation succeeded(valid only auto negotiation enabled in MAC and "in-band" bypass disabled)
>
> So if auto negotiation mechanism disabled in MAC or bypassed, link status would changes to up and IRQ interrupt be triggered.
>
> In case of RGMII mode obviously we don't have "in-band" auto negotiation and "out-band" cannot be used in Kernel(due to missed locks).
> So auto negotiation should be disabled on MAC level and speed/duplex/flow_contol would be negotiate by PHY.
> phylink/phylib infrastructure should provide speed/duplex/flow_contol(that were agreed between PHY's) to ppv2 driver.
Sorry, I find this very confusing.
It seems we have some people telling me that when there's no PHY
described in DT, we use this link interrupt, and have a functional
network interface (presumably at whatever speed.)
I can't see this working from what you describe - what you describe
basically tells me that when in-band autonegotiation is disabled, and we
have no PHY in the kernel, then effectively we are in fixed-link mode -
since we need to know what speed, duplex and flow control settings to
use.
So, this means that mvpp2 should be enforcing the presence of a
fixed-link description in DT if there is no PHY node at the moment, but
it doesn't.
Instead, it looks to me like the speed and duplex settings are inherited
from the boot loader or whatever was running before - I can't find
anything that configures MVPP2_GMAC_AUTONEG_CONFIG in this case. That
seems quite a mess.
Maybe I'm missing something, but I don't see how mvpp2 can be converted
to phylink given this without causing some kind of regression, unless
someone can be much clearer about exactly what kinds of link mvpp2
supports and how they work (which is basically what I asked back in
October.)
--
RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line in suburbia: sync at 8.8Mbps down 630kbps up
According to speedtest.net: 8.21Mbps down 510kbps up
^ permalink raw reply
* [PATCH] irqchip/gic-v3-its: Add workaround for ThunderX2 erratum #174
From: Ganapatrao Kulkarni @ 2018-01-03 18:13 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <a91ecf76-eb32-e41e-adbb-be931ef6a37a@arm.com>
On Wed, Jan 3, 2018 at 5:06 PM, Marc Zyngier <marc.zyngier@arm.com> wrote:
> On 03/01/18 11:20, Ganapatrao Kulkarni wrote:
>> On Wed, Jan 3, 2018 at 3:43 PM, Marc Zyngier <marc.zyngier@arm.com> wrote:
>>> On 03/01/18 09:35, Ganapatrao Kulkarni wrote:
>>>> Hi Marc,
>>>>
>>>> On Wed, Jan 3, 2018 at 2:17 PM, Marc Zyngier <marc.zyngier@arm.com> wrote:
>>>>> On 03/01/18 06:32, Ganapatrao Kulkarni wrote:
>>>>>> When an interrupt is moved across node collections on ThunderX2
>>>>>
>>>>> node collections?
>>>>
>>>> ok, i will rephrase it.
>>>> i was intended to say cross NUMA node collection/cpu affinity change.
>>>>
>>>>>
>>>>>> multi Socket platform, an interrupt stops routed to new collection
>>>>>> and results in loss of interrupts.
>>>>>>
>>>>>> Adding workaround to issue INV after MOVI for cross-node collection
>>>>>> move to flush out the cached entry.
>>>>>>
>>>>>> Signed-off-by: Ganapatrao Kulkarni <ganapatrao.kulkarni@cavium.com>
>>>>>> ---
>>>>>> Documentation/arm64/silicon-errata.txt | 1 +
>>>>>> arch/arm64/Kconfig | 11 +++++++++++
>>>>>> drivers/irqchip/irq-gic-v3-its.c | 24 ++++++++++++++++++++++++
>>>>>> 3 files changed, 36 insertions(+)
>>>>>>
>>>>>> diff --git a/Documentation/arm64/silicon-errata.txt b/Documentation/arm64/silicon-errata.txt
>>>>>> index fc1c884..fb27cb5 100644
>>>>>> --- a/Documentation/arm64/silicon-errata.txt
>>>>>> +++ b/Documentation/arm64/silicon-errata.txt
>>>>>> @@ -63,6 +63,7 @@ stable kernels.
>>>>>> | Cavium | ThunderX Core | #27456 | CAVIUM_ERRATUM_27456 |
>>>>>> | Cavium | ThunderX Core | #30115 | CAVIUM_ERRATUM_30115 |
>>>>>> | Cavium | ThunderX SMMUv2 | #27704 | N/A |
>>>>>> +| Cavium | ThunderX2 ITS | #174 | CAVIUM_ERRATUM_174 |
>>>>>> | Cavium | ThunderX2 SMMUv3| #74 | N/A |
>>>>>> | Cavium | ThunderX2 SMMUv3| #126 | N/A |
>>>>>> | | | | |
>>>>>> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
>>>>>> index c9a7e9e..71a7e30 100644
>>>>>> --- a/arch/arm64/Kconfig
>>>>>> +++ b/arch/arm64/Kconfig
>>>>>> @@ -461,6 +461,17 @@ config ARM64_ERRATUM_843419
>>>>>>
>>>>>> If unsure, say Y.
>>>>>>
>>>>>> +config CAVIUM_ERRATUM_174
>>>>>> + bool "Cavium ThunderX2 erratum 174"
>>>>>> + depends on NUMA
>>>>>
>>>>> Why? This system will be affected no matter whether NUMA is selected or not.
>>>>
>>>> it does not makes sense to enable on non-NUMA/single socket platforms.
>>>> By default NUMA is enabled on ThunderX2 dual socket platforms.
>>>
>>> <quote>
>>> config ARCH_THUNDER2
>>> bool "Cavium ThunderX2 Server Processors"
>>> select GPIOLIB
>>> help
>>> This enables support for Cavium's ThunderX2 CN99XX family of
>>> server processors.
>>> </quote>
>>>
>>> Do you see any NUMA here? I can perfectly compile a kernel with both
>>> sockets, and not using NUMA. NUMA has to do with memory, and not interrupts.
>>
>> ok, i will remote it.
>>>
>>>>
>>>>>
>>>>>> + default y
>>>>>> + help
>>>>>> + LPI stops routed to redistributors after inter node collection
>>>>>> + move in ITS. Enable workaround to invalidate ITS entry after
>>>>>> + inter-node collection move.
>>>>>
>>>>> That's a very terse description. Nobody knows what an LPI, a
>>>>> redistributor or a collection is. Please explain what the erratum is in
>>>>> layman's terms (Cavium ThunderX2 systems may loose interrupts on
>>>>> affinity change) so that people understand whether or not they are affected.
>>>>
>>>> ok, i will rephrase it in next version.
>>>>>
>>>>>> +
>>>>>> + If unsure, say Y.
>>>>>> +
>>>>>> config CAVIUM_ERRATUM_22375
>>>>>> bool "Cavium erratum 22375, 24313"
>>>>>> default y
>>>>>> diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c
>>>>>> index 06f025f..d8b9c96 100644
>>>>>> --- a/drivers/irqchip/irq-gic-v3-its.c
>>>>>> +++ b/drivers/irqchip/irq-gic-v3-its.c
>>>>>> @@ -46,6 +46,7 @@
>>>>>> #define ITS_FLAGS_CMDQ_NEEDS_FLUSHING (1ULL << 0)
>>>>>> #define ITS_FLAGS_WORKAROUND_CAVIUM_22375 (1ULL << 1)
>>>>>> #define ITS_FLAGS_WORKAROUND_CAVIUM_23144 (1ULL << 2)
>>>>>> +#define ITS_FLAGS_WORKAROUND_CAVIUM_174 (1ULL << 3)
>>>>>>
>>>>>> #define RDIST_FLAGS_PROPBASE_NEEDS_FLUSHING (1 << 0)
>>>>>>
>>>>>> @@ -1119,6 +1120,12 @@ static int its_set_affinity(struct irq_data *d, const struct cpumask *mask_val,
>>>>>> if (cpu != its_dev->event_map.col_map[id]) {
>>>>>> target_col = &its_dev->its->collections[cpu];
>>>>>> its_send_movi(its_dev, target_col, id);
>>>>>> + if (its_dev->its->flags & ITS_FLAGS_WORKAROUND_CAVIUM_174) {
>>>>>> + /* Issue INV for cross node collection move. */
>>>>>> + if (cpu_to_node(cpu) !=
>>>>>> + cpu_to_node(its_dev->event_map.col_map[id]))
>>>>>> + its_send_inv(its_dev, id);
>>>>>> + }
>>>>>
>>>>> What happens if an interrupt happens after the MOV, but before the INV?
>>>>
>>>> there can be drop, if interrupt happens before INV, however, it is
>>>> highly unlikely that we will hit the issue since MOVI and INV are
>>>> executed back to back. this workaround fixed issue seen on couple of
>>>> IOs.
>>>
>>> Really? So this doesn't fix anything, and the device may just wait
>>> forever for the CPU to service an LPI that was never delivered. I'm
>>> sorry, but that's not an acceptable workaround.
>>>
>>> I can see two solutions:
>>> 1) you inject an interrupt after the INV as you may have lost at least one
>>> 2) you restrict the affinity of LPIs to a single socket
>>>
>>> (1) will generate spurious interrupts, but will be safe. (2) will result
>>> in an unbalanced system. Pick your poison...
>>>
>>> You may be able to achieve something by disabling the LPI before
>>> performing the MOVI/INV sequence, and reenable it afterwards, but only
>>> you can tell if this could work with your HW.
>>
>> thanks for the suggestion, i will try out disable/enable LPI.
>> the sequence would be,
>> Disable LPI in rdist of cpu1
>> MOVI from cpu1 to cpu2
>> INV
>> enable LPI in rdist of cpu1
>
> You cannot disable LPIs at the redistributor level. For a start, this is
> not allowed by the architecture. It would also result in all the other
> LPIs to be lost. What you can do is to disable the single LPI you're
> about to move:
>
> its_mask_irq(d);
> MOVI
> its_unmask_irq(d);
thanks, this also fixes the issue.
i shall post v2 with this sequence.
>
> This will result in an INV/MOVI/INV sequence. Hopefully your MOVI
> implementation can move pending bits. But I don't know if that's enough,
> given the description of the erratum. And the more I think of it, the
> less I think it is a viable workaround.
>
> I'm starting to believe that something similar to
> ITS_FLAGS_WORKAROUND_CAVIUM_23144 is the way to go.
>
> Thanks,
>
> M.
> --
> Jazz is not dead. It just smells funny...
thanks
Ganapat
^ permalink raw reply
* [EXT] Re: [PATCH net-next 5/6] arm64: dts: marvell: mcbin: enable the fourth network interface
From: Marcin Wojtas @ 2018-01-03 18:17 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20180103175446.GI28752@n2100.armlinux.org.uk>
Russell,
2018-01-03 18:54 GMT+01:00 Russell King - ARM Linux <linux@armlinux.org.uk>:
> On Wed, Jan 03, 2018 at 05:00:47PM +0000, Stefan Chulski wrote:
>> > > > -----Original Message-----
>> > > > Hi Russell,
>> > > >
>> > > > Indeed. RGMII MAC behaves same way, although it shouldn't be named
>> > > > as 'in- band' to be on par with the specifications. Anyway - this
>> > > > one is rather a stub for being able to work with ACPI, so once the
>> > > > MDIO bus works there, this will be out of any concerns.
>> > >
>> > > Hi Marcin,
>> > >
>> > > This is correct.
>> > > "in-band" supported only for SGMII mode.
>> > > IRQ link interrupt depend on "in-band"' auto negation only if "in-band"'
>> > enabled.
>> > > But IRQ link interrupt could be triggered with "in-band", "out-band" or with
>> > specific fixed speed/duplex/flow_contol.
>> >
>> > Hi Stefan,
>> >
>> > How does this work in RGMII mode - is this handled by the PP2 polling the PHY
>> > to get the speed, duplex and flow control settings?
>> >
>>
>> IRQ interrupt doesn't handled speed, duplex and flow control settings.
>> It's just raised if number of criterions met:
>> 1) Physical signal detected by MAC
>> 2) MAC auto negotiation succeeded(valid only auto negotiation enabled in MAC and "in-band" bypass disabled)
>>
>> So if auto negotiation mechanism disabled in MAC or bypassed, link status would changes to up and IRQ interrupt be triggered.
>>
>> In case of RGMII mode obviously we don't have "in-band" auto negotiation and "out-band" cannot be used in Kernel(due to missed locks).
>> So auto negotiation should be disabled on MAC level and speed/duplex/flow_contol would be negotiate by PHY.
>> phylink/phylib infrastructure should provide speed/duplex/flow_contol(that were agreed between PHY's) to ppv2 driver.
>
> Sorry, I find this very confusing.
>
> It seems we have some people telling me that when there's no PHY
> described in DT, we use this link interrupt, and have a functional
> network interface (presumably at whatever speed.)
>
> I can't see this working from what you describe - what you describe
> basically tells me that when in-band autonegotiation is disabled, and we
> have no PHY in the kernel, then effectively we are in fixed-link mode -
> since we need to know what speed, duplex and flow control settings to
> use.
>
> So, this means that mvpp2 should be enforcing the presence of a
> fixed-link description in DT if there is no PHY node at the moment, but
> it doesn't.
>
> Instead, it looks to me like the speed and duplex settings are inherited
> from the boot loader or whatever was running before - I can't find
> anything that configures MVPP2_GMAC_AUTONEG_CONFIG in this case. That
> seems quite a mess.
Just 3 cents from me about the RGMII + link IRQ, which is only a
temporary solution for ACPI. It works basing on the results of UEFI HW
PHY polling and inherited GMAC settings. Once this MDIO bus / PHY
handling lands, this configuration will be out of any question and
usage in the pp2 driver.
Marcin
>
> Maybe I'm missing something, but I don't see how mvpp2 can be converted
> to phylink given this without causing some kind of regression, unless
> someone can be much clearer about exactly what kinds of link mvpp2
> supports and how they work (which is basically what I asked back in
> October.)
>
> --
> RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
> FTTC broadband for 0.8mile line in suburbia: sync at 8.8Mbps down 630kbps up
> According to speedtest.net: 8.21Mbps down 510kbps up
^ permalink raw reply
* [PATCH] irqchip/gic-v3-its: Add workaround for ThunderX2 erratum #174
From: Marc Zyngier @ 2018-01-03 18:18 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <CAKTKpr71O_VXq7AY4PqPkaBcEzTbvCjV3nt5tuY7uUaJMxoYtg@mail.gmail.com>
On 03/01/18 18:13, Ganapatrao Kulkarni wrote:
> On Wed, Jan 3, 2018 at 5:06 PM, Marc Zyngier <marc.zyngier@arm.com> wrote:
>> On 03/01/18 11:20, Ganapatrao Kulkarni wrote:
>>> On Wed, Jan 3, 2018 at 3:43 PM, Marc Zyngier <marc.zyngier@arm.com> wrote:
>>>> On 03/01/18 09:35, Ganapatrao Kulkarni wrote:
>>>>> Hi Marc,
>>>>>
>>>>> On Wed, Jan 3, 2018 at 2:17 PM, Marc Zyngier <marc.zyngier@arm.com> wrote:
>>>>>> On 03/01/18 06:32, Ganapatrao Kulkarni wrote:
>>>>>>> When an interrupt is moved across node collections on ThunderX2
>>>>>>
>>>>>> node collections?
>>>>>
>>>>> ok, i will rephrase it.
>>>>> i was intended to say cross NUMA node collection/cpu affinity change.
>>>>>
>>>>>>
>>>>>>> multi Socket platform, an interrupt stops routed to new collection
>>>>>>> and results in loss of interrupts.
>>>>>>>
>>>>>>> Adding workaround to issue INV after MOVI for cross-node collection
>>>>>>> move to flush out the cached entry.
>>>>>>>
>>>>>>> Signed-off-by: Ganapatrao Kulkarni <ganapatrao.kulkarni@cavium.com>
>>>>>>> ---
>>>>>>> Documentation/arm64/silicon-errata.txt | 1 +
>>>>>>> arch/arm64/Kconfig | 11 +++++++++++
>>>>>>> drivers/irqchip/irq-gic-v3-its.c | 24 ++++++++++++++++++++++++
>>>>>>> 3 files changed, 36 insertions(+)
>>>>>>>
>>>>>>> diff --git a/Documentation/arm64/silicon-errata.txt b/Documentation/arm64/silicon-errata.txt
>>>>>>> index fc1c884..fb27cb5 100644
>>>>>>> --- a/Documentation/arm64/silicon-errata.txt
>>>>>>> +++ b/Documentation/arm64/silicon-errata.txt
>>>>>>> @@ -63,6 +63,7 @@ stable kernels.
>>>>>>> | Cavium | ThunderX Core | #27456 | CAVIUM_ERRATUM_27456 |
>>>>>>> | Cavium | ThunderX Core | #30115 | CAVIUM_ERRATUM_30115 |
>>>>>>> | Cavium | ThunderX SMMUv2 | #27704 | N/A |
>>>>>>> +| Cavium | ThunderX2 ITS | #174 | CAVIUM_ERRATUM_174 |
>>>>>>> | Cavium | ThunderX2 SMMUv3| #74 | N/A |
>>>>>>> | Cavium | ThunderX2 SMMUv3| #126 | N/A |
>>>>>>> | | | | |
>>>>>>> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
>>>>>>> index c9a7e9e..71a7e30 100644
>>>>>>> --- a/arch/arm64/Kconfig
>>>>>>> +++ b/arch/arm64/Kconfig
>>>>>>> @@ -461,6 +461,17 @@ config ARM64_ERRATUM_843419
>>>>>>>
>>>>>>> If unsure, say Y.
>>>>>>>
>>>>>>> +config CAVIUM_ERRATUM_174
>>>>>>> + bool "Cavium ThunderX2 erratum 174"
>>>>>>> + depends on NUMA
>>>>>>
>>>>>> Why? This system will be affected no matter whether NUMA is selected or not.
>>>>>
>>>>> it does not makes sense to enable on non-NUMA/single socket platforms.
>>>>> By default NUMA is enabled on ThunderX2 dual socket platforms.
>>>>
>>>> <quote>
>>>> config ARCH_THUNDER2
>>>> bool "Cavium ThunderX2 Server Processors"
>>>> select GPIOLIB
>>>> help
>>>> This enables support for Cavium's ThunderX2 CN99XX family of
>>>> server processors.
>>>> </quote>
>>>>
>>>> Do you see any NUMA here? I can perfectly compile a kernel with both
>>>> sockets, and not using NUMA. NUMA has to do with memory, and not interrupts.
>>>
>>> ok, i will remote it.
>>>>
>>>>>
>>>>>>
>>>>>>> + default y
>>>>>>> + help
>>>>>>> + LPI stops routed to redistributors after inter node collection
>>>>>>> + move in ITS. Enable workaround to invalidate ITS entry after
>>>>>>> + inter-node collection move.
>>>>>>
>>>>>> That's a very terse description. Nobody knows what an LPI, a
>>>>>> redistributor or a collection is. Please explain what the erratum is in
>>>>>> layman's terms (Cavium ThunderX2 systems may loose interrupts on
>>>>>> affinity change) so that people understand whether or not they are affected.
>>>>>
>>>>> ok, i will rephrase it in next version.
>>>>>>
>>>>>>> +
>>>>>>> + If unsure, say Y.
>>>>>>> +
>>>>>>> config CAVIUM_ERRATUM_22375
>>>>>>> bool "Cavium erratum 22375, 24313"
>>>>>>> default y
>>>>>>> diff --git a/drivers/irqchip/irq-gic-v3-its.c b/drivers/irqchip/irq-gic-v3-its.c
>>>>>>> index 06f025f..d8b9c96 100644
>>>>>>> --- a/drivers/irqchip/irq-gic-v3-its.c
>>>>>>> +++ b/drivers/irqchip/irq-gic-v3-its.c
>>>>>>> @@ -46,6 +46,7 @@
>>>>>>> #define ITS_FLAGS_CMDQ_NEEDS_FLUSHING (1ULL << 0)
>>>>>>> #define ITS_FLAGS_WORKAROUND_CAVIUM_22375 (1ULL << 1)
>>>>>>> #define ITS_FLAGS_WORKAROUND_CAVIUM_23144 (1ULL << 2)
>>>>>>> +#define ITS_FLAGS_WORKAROUND_CAVIUM_174 (1ULL << 3)
>>>>>>>
>>>>>>> #define RDIST_FLAGS_PROPBASE_NEEDS_FLUSHING (1 << 0)
>>>>>>>
>>>>>>> @@ -1119,6 +1120,12 @@ static int its_set_affinity(struct irq_data *d, const struct cpumask *mask_val,
>>>>>>> if (cpu != its_dev->event_map.col_map[id]) {
>>>>>>> target_col = &its_dev->its->collections[cpu];
>>>>>>> its_send_movi(its_dev, target_col, id);
>>>>>>> + if (its_dev->its->flags & ITS_FLAGS_WORKAROUND_CAVIUM_174) {
>>>>>>> + /* Issue INV for cross node collection move. */
>>>>>>> + if (cpu_to_node(cpu) !=
>>>>>>> + cpu_to_node(its_dev->event_map.col_map[id]))
>>>>>>> + its_send_inv(its_dev, id);
>>>>>>> + }
>>>>>>
>>>>>> What happens if an interrupt happens after the MOV, but before the INV?
>>>>>
>>>>> there can be drop, if interrupt happens before INV, however, it is
>>>>> highly unlikely that we will hit the issue since MOVI and INV are
>>>>> executed back to back. this workaround fixed issue seen on couple of
>>>>> IOs.
>>>>
>>>> Really? So this doesn't fix anything, and the device may just wait
>>>> forever for the CPU to service an LPI that was never delivered. I'm
>>>> sorry, but that's not an acceptable workaround.
>>>>
>>>> I can see two solutions:
>>>> 1) you inject an interrupt after the INV as you may have lost at least one
>>>> 2) you restrict the affinity of LPIs to a single socket
>>>>
>>>> (1) will generate spurious interrupts, but will be safe. (2) will result
>>>> in an unbalanced system. Pick your poison...
>>>>
>>>> You may be able to achieve something by disabling the LPI before
>>>> performing the MOVI/INV sequence, and reenable it afterwards, but only
>>>> you can tell if this could work with your HW.
>>>
>>> thanks for the suggestion, i will try out disable/enable LPI.
>>> the sequence would be,
>>> Disable LPI in rdist of cpu1
>>> MOVI from cpu1 to cpu2
>>> INV
>>> enable LPI in rdist of cpu1
>>
>> You cannot disable LPIs at the redistributor level. For a start, this is
>> not allowed by the architecture. It would also result in all the other
>> LPIs to be lost. What you can do is to disable the single LPI you're
>> about to move:
>>
>> its_mask_irq(d);
>> MOVI
>> its_unmask_irq(d);
>
> thanks, this also fixes the issue.
> i shall post v2 with this sequence.
Does it really? What if you get this LPI between the MOVI and the INV? I
bet it drops it on the floor.
M.
--
Jazz is not dead. It just smells funny...
^ permalink raw reply
* [EXT] Re: [PATCH net-next 5/6] arm64: dts: marvell: mcbin: enable the fourth network interface
From: Stefan Chulski @ 2018-01-03 18:26 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20180103175446.GI28752@n2100.armlinux.org.uk>
> Sorry, I find this very confusing.
>
> It seems we have some people telling me that when there's no PHY described
> in DT, we use this link interrupt, and have a functional network interface
> (presumably at whatever speed.)
I give you couple of examples when we have functional network interface with
link interrupt:
1) 10G XLG mode without PHY - since XLG doesn't have auto negation mechanism
2) SGMII with in-band auto negation
3) RGMII with auto negation done previously by boot loader or by change default fixed
speed same as speed on cable.
Of course correct way to do it in RGMII mode is use values provided by phylink/phylib.
Stefan.
>
> I can't see this working from what you describe - what you describe basically
> tells me that when in-band autonegotiation is disabled, and we have no PHY in
> the kernel, then effectively we are in fixed-link mode - since we need to know
> what speed, duplex and flow control settings to use.
>
> So, this means that mvpp2 should be enforcing the presence of a fixed-link
> description in DT if there is no PHY node at the moment, but it doesn't.
>
> Instead, it looks to me like the speed and duplex settings are inherited from the
> boot loader or whatever was running before - I can't find anything that
> configures MVPP2_GMAC_AUTONEG_CONFIG in this case. That seems quite a
> mess.
>
> Maybe I'm missing something, but I don't see how mvpp2 can be converted to
> phylink given this without causing some kind of regression, unless someone can
> be much clearer about exactly what kinds of link mvpp2 supports and how they
> work (which is basically what I asked back in
> October.)
>
> --
> RMK's Patch system: http://www.armlinux.org.uk/developer/patches/
> FTTC broadband for 0.8mile line in suburbia: sync at 8.8Mbps down 630kbps up
> According to speedtest.net: 8.21Mbps down 510kbps up
^ permalink raw reply
* [RESEND PATCH v2 14/15] ASoC: qcom: apq8096: Add db820c machine driver
From: Srinivas Kandagatla @ 2018-01-03 18:36 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <f72f32dd-e248-47c3-23cc-eabe1b85d9ae@codeaurora.org>
Thanks for your review comments,
On 03/01/18 17:20, Stephen Boyd wrote:
> On 12/14/2017 09:34 AM, srinivas.kandagatla at linaro.org wrote:
>> From: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
>>
>> diff --git a/sound/soc/qcom/apq8096.c b/sound/soc/qcom/apq8096.c
>> new file mode 100644
>> index 000000000000..5b2036317f71
>> --- /dev/null
>> +++ b/sound/soc/qcom/apq8096.c
>> @@ -0,0 +1,124 @@
>> + */
>> +#include <linux/clk.h>
>
> No clk usage though?
Will remove it in next version.
>
>> +#include <linux/platform_device.h>
>> +#include <linux/module.h>
>> +#include <linux/of_device.h>
>> +#include <sound/soc.h>
> [...]
>> +static int apq8096_sbc_parse_of(struct snd_soc_card *card)
>> +{
>> + struct device *dev = card->dev;
>> + int ret;
>> +
>> + ret = snd_soc_of_parse_card_name(card, "qcom,model");
>> + if (ret)
>> + dev_err(dev, "Error parsing card name: %d\n", ret);
>
> So this prints an error, and the caller also prints an error when it
> fails. Double error messages?
>
looks redundant, will remove it.
>> +
>> + return ret;
>> +}
>> +
>> +static int msm_snd_apq8096_probe(struct platform_device *pdev)
>> +{
>> + int ret;
>> + struct snd_soc_card *card;
>> +
>> + card = devm_kzalloc(&pdev->dev, sizeof(*card), GFP_KERNEL);
>> + if (!card)
>> + return -ENOMEM;
>> +
>> + card->dev = &pdev->dev;
>> +
>> + ret = dma_coerce_mask_and_coherent(card->dev, DMA_BIT_MASK(32));
>
> Why do we need to do this? Can you add some sort of comment in the code
> about why?
Even though dsp supports 64 bit addresses, but the sid sits at offset of
32, which brings this restriction of supporting only 32 bit iova.
thanks,
srini
>
^ permalink raw reply
* [PATCH v3] ARM: dts: imx6: RDU2: disable internal watchdog
From: Andrey Smirnov @ 2018-01-03 19:32 UTC (permalink / raw)
To: linux-arm-kernel
From: Lucas Stach <l.stach@pengutronix.de>
The system has an external watchdog in the environment processor
so the internal watchdog is of no use.
Cc: Sascha Hauer <kernel@pengutronix.de>
Cc: Fabio Estevam <fabio.estevam@nxp.com>
Cc: Rob Herring <robh+dt@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: linux-arm-kernel at lists.infradead.org
Cc: devicetree at vger.kernel.org
Cc: linux-kernel at vger.kernel.org
Cc: cphealy at gmail.com
Reviewed-by: Fabio Estevam <fabio.estevam@nxp.com>
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
---
Changes since [v2]:
- Collected Reviewed-by from Fabio
- Moved wdog to be after audmux
Changes since [v1]:
- Submission updated to have correct "From" field.
[v2] lkml.kernel.org/r/20180101212451.11516-1-andrew.smirnov at gmail.com
[v1] lkml.kernel.org/r/20171227035656.4941-2-andrew.smirnov at gmail.com
arch/arm/boot/dts/imx6qdl-zii-rdu2.dtsi | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/arch/arm/boot/dts/imx6qdl-zii-rdu2.dtsi b/arch/arm/boot/dts/imx6qdl-zii-rdu2.dtsi
index 881c3ee71016..199fda67f84f 100644
--- a/arch/arm/boot/dts/imx6qdl-zii-rdu2.dtsi
+++ b/arch/arm/boot/dts/imx6qdl-zii-rdu2.dtsi
@@ -859,6 +859,10 @@
};
};
+&wdog1 {
+ status = "disabled";
+};
+
&iomuxc {
pinctrl_accel: accelgrp {
fsl,pins = <
--
2.14.3
^ permalink raw reply related
* [RESEND PATCH v2 07/15] ASoC: qcom: q6asm: Add support to memory map and unmap
From: Bjorn Andersson @ 2018-01-03 19:39 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <4d1d17df-71a4-2896-29c1-9d033a2f3711@linaro.org>
On Wed 03 Jan 08:26 PST 2018, Srinivas Kandagatla wrote:
> Thanks for your review comments.
>
> On 02/01/18 05:48, Bjorn Andersson wrote:
> > On Thu 14 Dec 09:33 PST 2017, srinivas.kandagatla at linaro.org wrote:
[..]
> > > +int q6asm_unmap_memory_regions(unsigned int dir, struct audio_client *ac)
> > > +{
> > > + struct audio_port_data *port;
> > > + int cnt = 0;
> > > + int rc = 0;
> > > +
> > > + mutex_lock(&ac->cmd_lock);
> > > + port = &ac->port[dir];
> > > + if (!port->buf) {
> > > + mutex_unlock(&ac->cmd_lock);
> > > + return 0;
> >
> > Put a label right before the mutex_unlock below and return rc instead of
> > 0, then you can replace these two lines with "goto unlock"
> >
> > > + }
> > > + cnt = port->max_buf_cnt - 1;
> >
> > What if we mapped 1 period? Why shouldn't we enter the unmap path?
> >
> It would enter into unmap path, as cnt would be 0 for 1 period.
>
You're right, I missed the = in the comparison, but I don't see a reason
to subtract 1. It seems like the max_buf_cnt might have been used
differently in the past?
I suggest that you drop the - 1 and change the comparison to cnt > 0, if
nothing else to not confuse me if I read this code again ;)
> > > + if (cnt >= 0) {
[..]
> > > +int q6asm_map_memory_regions(unsigned int dir, struct audio_client *ac,
> > > + dma_addr_t phys,
> > > + unsigned int period_sz, unsigned int periods)
[..]
> > > + ac->port[dir].max_buf_cnt = 0;
> > > + kfree(buf);
> > > + ac->port[dir].buf = NULL;
> >
> > These operations are done without holding cmd_lock.
> >
> I will revisit such instances where the buf is not protected.
>
NB. I got the impression that cmd_lock was actually the port_lock in
most places.
Regards,
Bjorn
^ permalink raw reply
* [RESEND PATCH v2 14/15] ASoC: qcom: apq8096: Add db820c machine driver
From: Stephen Boyd @ 2018-01-03 19:41 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <4db358ab-3171-bb08-ca26-ec9bf282e8d4@linaro.org>
On 01/03, Srinivas Kandagatla wrote:
> Thanks for your review comments,
>
> On 03/01/18 17:20, Stephen Boyd wrote:
> >>+
> >>+ return ret;
> >>+}
> >>+
> >>+static int msm_snd_apq8096_probe(struct platform_device *pdev)
> >>+{
> >>+ int ret;
> >>+ struct snd_soc_card *card;
> >>+
> >>+ card = devm_kzalloc(&pdev->dev, sizeof(*card), GFP_KERNEL);
> >>+ if (!card)
> >>+ return -ENOMEM;
> >>+
> >>+ card->dev = &pdev->dev;
> >>+
> >>+ ret = dma_coerce_mask_and_coherent(card->dev, DMA_BIT_MASK(32));
> >
> >Why do we need to do this? Can you add some sort of comment in the code
> >about why?
>
> Even though dsp supports 64 bit addresses, but the sid sits at
> offset of 32, which brings this restriction of supporting only 32
> bit iova.
>
Doesn't the dsp have an iommu in place to make the address
translation from 64 to 32 bits transparent? I thought this was
what dma-ranges and iommu binding was for, but I'm not well
versed on all the details here.
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
^ permalink raw reply
* [PATCH v2] dt: psci: Update DT bindings to support hierarchical PSCI states
From: Rob Herring @ 2018-01-03 19:42 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <1514472037-25969-1-git-send-email-ulf.hansson@linaro.org>
On Thu, Dec 28, 2017 at 03:40:37PM +0100, Ulf Hansson wrote:
> From: Lina Iyer <lina.iyer@linaro.org>
>
> Update DT bindings to represent hierarchical CPU and CPU domain idle states
> for PSCI. Also update the PSCI examples to clearly show how flattened and
> hierarchical idle states can be represented in DT.
>
> Signed-off-by: Lina Iyer <lina.iyer@linaro.org>
> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
> ---
>
> Changes in v2:
> - Addressed comments from Rob.
> - Updated some labels in the examples to get more consistency.
>
> For your information, I have picked up the work from Lina Iyer around the so
> called CPU cluster idling series [1,2] and I working on new versions. However,
> I decided to post the updates to the PSCI DT bindings first, as they will be
> needed to be agreed upon before further changes can be done to the PSCI firmware
> driver.
>
> Note, these bindings have been discussed over and over again, at LKML, but
> especially also at various Linux conferences, like LPC and Linaro Connect. We
> finally came to a conclusion and the changes we agreed upon, should be reflected
> in this update.
>
> Of course, it's a while ago since the latest discussions, but hopefully people
> don't have too hard time to remember.
>
> Kind regards
> Uffe
>
> [1]
> https://www.spinics.net/lists/arm-kernel/msg566200.html
>
> [2]
> https://lwn.net/Articles/716300/
>
> ---
> Documentation/devicetree/bindings/arm/psci.txt | 152 +++++++++++++++++++++++++
> 1 file changed, 152 insertions(+)
Reviewed-by: Rob Herring <robh@kernel.org>
I'd like to see some R-by by some of the ARM folks too.
Rob
^ permalink raw reply
* [PATCH v2 1/2] Input: edt-ft5x06 - Add support for regulator
From: Rob Herring @ 2018-01-03 19:48 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20171228163336.28131-2-mylene.josserand@free-electrons.com>
On Thu, Dec 28, 2017 at 05:33:35PM +0100, Myl?ne Josserand wrote:
> Add the support of regulator to use it as VCC source.
>
> Signed-off-by: Myl?ne Josserand <mylene.josserand@free-electrons.com>
> ---
> .../bindings/input/touchscreen/edt-ft5x06.txt | 1 +
> drivers/input/touchscreen/edt-ft5x06.c | 33 ++++++++++++++++++++++
> 2 files changed, 34 insertions(+)
Reviewed-by: Rob Herring <robh@kernel.org>
^ permalink raw reply
* [RESEND PATCH v2 13/15] dt-bindings: sound: qcom: Add devicetree bindings for apq8096
From: Bjorn Andersson @ 2018-01-03 19:49 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <787ecdc5-66d8-23ee-7136-2a8759c86536@linaro.org>
On Wed 03 Jan 08:27 PST 2018, Srinivas Kandagatla wrote:
>
>
> On 03/01/18 00:28, Bjorn Andersson wrote:
> > On Thu 14 Dec 09:34 PST 2017, srinivas.kandagatla at linaro.org wrote:
> >
> > > +++ b/Documentation/devicetree/bindings/sound/qcom,apq8096.txt
> >
> > Wouldn't it be possible to describe all(?) qdsp based machines in this
> > one document? I.e. should we name it a little bit more generic?
>
> You mean like downstream ?
>
I mean that I'm guessing that apq8084, msm8994, msm8998 etc would come
with the same binding document, but a different compatible.
This is fine for now though, we can always rename the file and reword
the description later.
Regards,
Bjorn
^ permalink raw reply
* [PATCH 00/12] Marvell NAND controller rework with ->exec_op()
From: Robert Jarzmik @ 2018-01-03 19:58 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20180103084037.422b239a@xps13>
Miquel RAYNAL <miquel.raynal@free-electrons.com> writes:
> On Tue, 02 Jan 2018 20:21:09 +0100
> Robert Jarzmik <robert.jarzmik@free.fr> wrote:
>
>> Miquel RAYNAL <miquel.raynal@free-electrons.com> writes:
>>
>> > I think the ECC issue you faced was related to pages being written
>> > *and* empty. If this guess is right, the board should boot fine with
>> > these changes.
>> >
>> > Otherwise, please add the DEBUG define as before in both the core
>> > and the driver and do not hesitate to add another dump_stack()
>> > where it crashes (if applicable).
>>
>> The problem looks still the same :
>> [ 3.560163] Bad block table not found for chip 0
>
> Mmmmh ok.
>
> Can you please add this patch:
> http://code.bulix.org/61at9p-254626
Well, it looks a bit better, see attached log in [1].
Now the BBT is detected ...
[ 3.310841] Bad block table found at page 131008, version 0x01
...
[ 3.354944] Bad block table found at page 130944, version 0x01
But all blocks are considered bad ... as if the bit logic was inverted for the
meaning of "bad" or "good" block, see :
[ 3.379825] nand_read_bbt: bad block at 0x000000000000
Cheers.
--
Robert
[1] Dmesg
---8>---
netconsole: port not set
netconsole: registered as netconsole-1
smc91c111 smc91c1110: chip is revision= 9, version= 2
mdio_bus: miibus0: probed
eth0: got preset MAC address: 00:0e:0c:a7:26:f7
nand: NAND device: Manufacturer ID: 0x20, Chip ID: 0xba (ST Micro NAND 256MiB 1,8V 16-bit), 256MiB, page size: 2048, OOB size: 64
mrvl_nand mrvl_nand0: ECC strength 1, ECC step size 512
Bad block table found at page 131008, version 0x01
Bad block table found at page 130944, version 0x01
malloc space: 0x83700000 -> 0x83efffff (size 8 MiB)
running /env/bin/init...
magicvar: No such file or directory
magicvar: No such file or directory
magicvar: No such file or directory
Hit any key to stop autoboot: 3\b\b 2\b\b 1\b\b 0
booting net
netconsole: netconsole initialized with 255.255.255.255:6662
eth0: 100Mbps full duplex link detected
DHCP client bound to address 192.168.1.232
netconsole: netconsole initialized with 255.255.255.255:6662
could not open /mnt/tftp/none-linux-zylonite: No such file or directory
Booting net failed: No such file or directory
booting net failed: No such file or directory
boot: No such file or directory
.[1;32mbarebox at .[1;36mZylonite:/.[0m global linux.bootargs.debug=earlycon
.[1;32mbarebox at .[1;36mZylonite:/.[0m bootm /mnt/tftp/zImage_jenkins
Loading ARM Linux zImage '/mnt/tftp/zImage_jenkins'
commandline: ram=64M console=ttyS0,115200 ip=dhcp root=/dev/nfs nfsroot=/home/none/nfsroot/zylonite,v3,tcp earlycon mtdparts=pxa3xx_nand-0:128k at 0(TIMH)ro,128k at 128k(OBMI)ro,768k at 256k(barebox),256k at 1024k(barebox-env),12M at 1280k(kernel),38016k at 13568k(root)
arch_number: 1233
Uncompressing Linux... done, booting the kernel.
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 4.15.0-rc1-00044-gb6124ba (jenkins at belgarath) (gcc version 4.8.3 20140320 (prerelease) (Sourcery CodeBench Lite 2014.05-29)) #825 PREEMPT Wed Jan 3 20:06:17 CET 2018
[ 0.000000] CPU: XScale-V3 based processor [69056891] revision 1 (ARMv5TE), cr=0000397f
[ 0.000000] CPU: VIVT data cache, VIVT instruction cache
[ 0.000000] Machine: PXA3xx Platform Development Kit (aka Zylonite)
[ 0.000000] Ignoring tag cmdline (using the default kernel command line)
[ 0.000000] Memory policy: Data cache writeback
[ 0.000000] RO Mode clock: 0.00MHz
[ 0.000000] Run Mode clock: 0.00MHz
[ 0.000000] Turbo Mode clock: 0.00MHz
[ 0.000000] System bus clock: 0.00MHz
[ 0.000000] On node 0 totalpages: 16384
[ 0.000000] Normal zone: 128 pages used for memmap
[ 0.000000] Normal zone: 0 pages reserved
[ 0.000000] Normal zone: 16384 pages, LIFO batch:3
[ 0.000000] random: fast init done
[ 0.000000] pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
[ 0.000000] pcpu-alloc: [0] 0
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 16256
[ 0.000000] Kernel command line: root=/dev/ram0 ip=192.168.1.232:192.168.1.5::255.255.255.0::eth0:on console=ttyS0,115200 mem=64M mtdparts=pxa3xx_nand-0:128k at 0(TIMH)ro,128k at 128k(OBMI)ro,768k at 256k(barebox),256k at 1024k(barebox-env),12M at 1280k(kernel),38016k at 13568k(root) ubi.mtd=5 earlycon=pxa,io,0xf6200000,115200n8 debug no_console_suspend
[ 0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
[ 0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.000000] Memory: 56856K/65536K available (4225K kernel code, 202K rwdata, 972K rodata, 2396K init, 102K bss, 8680K reserved, 0K cma-reserved)
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
[ 0.000000] fixmap : 0xffc00000 - 0xfff00000 (3072 kB)
[ 0.000000] vmalloc : 0xc4800000 - 0xff800000 ( 944 MB)
[ 0.000000] lowmem : 0xc0000000 - 0xc4000000 ( 64 MB)
[ 0.000000] modules : 0xbf000000 - 0xc0000000 ( 16 MB)
[ 0.000000] .text : 0xc0008000 - 0xc04289e8 (4227 kB)
[ 0.000000] .init : 0xc053f000 - 0xc0796000 (2396 kB)
[ 0.000000] .data : 0xc0796000 - 0xc07c8bec ( 203 kB)
[ 0.000000] .bss : 0xc07c8bec - 0xc07e25fc ( 103 kB)
[ 0.000000] Preemptible hierarchical RCU implementation.
[ 0.000000] Tasks RCU enabled.
[ 0.000000] NR_IRQS: 16, nr_irqs: 336, preallocated irqs: 336
[ 0.000000] RJK: parent_rate=13000000, xl=8, xn=1
[ 0.000068] sched_clock: 32 bits at 3250kHz, resolution 307ns, wraps every 660764198758ns
[ 0.000267] clocksource: oscr0: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 588080137591 ns
[ 0.002138] Console: colour dummy device 80x30
[ 0.002297] Calibrating delay loop... 103.83 BogoMIPS (lpj=519168)
[ 0.081017] pid_max: default: 32768 minimum: 301
[ 0.081857] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.081957] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.085169] CPU: Testing write buffer coherency: ok
[ 0.088982] Setting up static identity map for 0x80008200 - 0x80008260
[ 0.089941] Hierarchical SRCU implementation.
[ 0.102960] devtmpfs: initialized
[ 0.113840] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.113980] futex hash table entries: 256 (order: -1, 3072 bytes)
[ 0.116305] NET: Registered protocol family 16
[ 0.119116] DMA: preallocated 256 KiB pool for atomic coherent allocations
[ 0.388612] Advanced Linux Sound Architecture Driver Initialized.
[ 0.392974] clocksource: Switched to clocksource oscr0
[ 0.551626] NET: Registered protocol family 2
[ 0.557926] TCP established hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.558151] TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.558332] TCP: Hash tables configured (established 1024 bind 1024)
[ 0.558869] UDP hash table entries: 256 (order: 0, 4096 bytes)
[ 0.559048] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[ 0.560201] NET: Registered protocol family 1
[ 0.562229] RPC: Registered named UNIX socket transport module.
[ 0.562327] RPC: Registered udp transport module.
[ 0.562381] RPC: Registered tcp transport module.
[ 0.562439] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 2.500715] Initialise system trusted keyrings
[ 2.502868] workingset: timestamp_bits=30 max_order=14 bucket_order=0
[ 2.507406] NFS: Registering the id_resolver key type
[ 2.507634] Key type id_resolver registered
[ 2.507695] Key type id_legacy registered
[ 2.514199] Key type asymmetric registered
[ 2.514303] Asymmetric key parser 'x509' registered
[ 2.514462] io scheduler noop registered
[ 2.514527] io scheduler deadline registered
[ 2.514921] io scheduler cfq registered (default)
[ 2.514992] io scheduler mq-deadline registered
[ 2.515054] io scheduler kyber registered
[ 2.572587] pxa-dma pxa-dma.0: initialized 32 channels on 100 requestors
[ 2.578330] pxa2xx-uart.0: ttyS0 at MMIO 0x40100000 (irq = 38, base_baud = 928571) is a UART1
[ 3.053207] console [ttyS0] enabled
[ 3.059557] pxa2xx-uart.1: ttyS1 at MMIO 0x40200000 (irq = 37, base_baud = 928571) is a UART2
[ 3.072069] pxa2xx-uart.2: ttyS2 at MMIO 0x40700000 (irq = 36, base_baud = 928571) is a UART3
[ 3.088037] nand: executing subop:
[ 3.091533] nand: ->CMD [0xff]
[ 3.098135] nand: ->WAITRDY [max 250 ms]
[ 3.102636] marvell-nfc pxa3xx-nand:
[ 3.102636] NDCR: 0x90079fff
[ 3.102636] NDCB0: 0x00a000ff
[ 3.102636] NDCB1: 0x00000000
[ 3.102636] NDCB2: 0x00000000
[ 3.102636] NDCB3: 0x00000000
[ 3.121629] nand: executing subop:
[ 3.125459] nand: ->CMD [0x90]
[ 3.129362] nand: ->ADDR [1 cyc: 00]
[ 3.134355] nand: ->DATA_IN [2 B, force 8-bit]
[ 3.139366] marvell-nfc pxa3xx-nand:
[ 3.139366] NDCR: 0x90079fff
[ 3.139366] NDCB0: 0x00610090
[ 3.139366] NDCB1: 0x00000000
[ 3.139366] NDCB2: 0x00000000
[ 3.139366] NDCB3: 0x00000000
[ 3.158242] nand: executing subop:
[ 3.161713] nand: ->CMD [0x90]
[ 3.165930] nand: ->ADDR [1 cyc: 00]
[ 3.170250] nand: ->DATA_IN [8 B, force 8-bit]
[ 3.175405] marvell-nfc pxa3xx-nand:
[ 3.175405] NDCR: 0x90079fff
[ 3.175405] NDCB0: 0x00610090
[ 3.175405] NDCB1: 0x00000000
[ 3.175405] NDCB2: 0x00000000
[ 3.175405] NDCB3: 0x00000000
[ 3.194083] nand: executing subop:
[ 3.197532] nand: ->CMD [0x90]
[ 3.201406] nand: ->ADDR [1 cyc: 20]
[ 3.205851] nand: ->DATA_IN [4 B, force 8-bit]
[ 3.210832] marvell-nfc pxa3xx-nand:
[ 3.210832] NDCR: 0x90079fff
[ 3.210832] NDCB0: 0x00610090
[ 3.210832] NDCB1: 0x00000020
[ 3.210832] NDCB2: 0x00000000
[ 3.210832] NDCB3: 0x00000000
[ 3.229453] nand: executing subop:
[ 3.232899] nand: ->CMD [0x90]
[ 3.236930] nand: ->ADDR [1 cyc: 40]
[ 3.241232] nand: ->DATA_IN [5 B, force 8-bit]
[ 3.246335] marvell-nfc pxa3xx-nand:
[ 3.246335] NDCR: 0x90079fff
[ 3.246335] NDCB0: 0x00610090
[ 3.246335] NDCB1: 0x00000040
[ 3.246335] NDCB2: 0x00000000
[ 3.246335] NDCB3: 0x00000000
[ 3.264978] nand: device found, Manufacturer ID: 0x20, Chip ID: 0xba
[ 3.271354] nand: ST Micro NAND 256MiB 1,8V 16-bit
[ 3.276316] nand: 256 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64
[ 3.284055] marvell-nfc pxa3xx-nand: No minimum ECC strength, using 1b/512B
[ 3.291595] marvell-nfc pxa3xx-nand:
[ 3.291595] NDCR: 0xdd079fff
[ 3.291595] NDCB0: 0x000d3000
[ 3.291595] NDCB1: 0xffc00000
[ 3.291595] NDCB2: 0x00000001
[ 3.291595] NDCB3: 0x00000000
[ 3.310841] Bad block table found at page 131008, version 0x01
[ 3.316993] marvell-nfc pxa3xx-nand:
[ 3.316993] NDCR: 0xdd079fff
[ 3.316993] NDCB0: 0x000d3000
[ 3.316993] NDCB1: 0xffc00000
[ 3.316993] NDCB2: 0x00000001
[ 3.316993] NDCB3: 0x00000000
[ 3.336013] marvell-nfc pxa3xx-nand:
[ 3.336013] NDCR: 0xdd079fff
[ 3.336013] NDCB0: 0x000d3000
[ 3.336013] NDCB1: 0xff800000
[ 3.336013] NDCB2: 0x00000001
[ 3.336013] NDCB3: 0x00000000
[ 3.354944] Bad block table found at page 130944, version 0x01
[ 3.360915] marvell-nfc pxa3xx-nand:
[ 3.360915] NDCR: 0xdd079fff
[ 3.360915] NDCB0: 0x000d3000
[ 3.360915] NDCB1: 0xffc00000
[ 3.360915] NDCB2: 0x00000001
[ 3.360915] NDCB3: 0x00000000
[ 3.379825] nand_read_bbt: bad block at 0x000000000000
[ 3.385158] nand_read_bbt: bad block at 0x000000040000
[ 3.390320] nand_read_bbt: bad block at 0x000000060000
[ 3.395587] nand_read_bbt: bad block at 0x000000080000
[ 3.400743] nand_read_bbt: bad block at 0x0000000a0000
[ 3.406009] nand_read_bbt: bad block at 0x0000000c0000
[ 3.411169] nand_read_bbt: bad block at 0x0000000e0000
[ 3.416434] nand_read_bbt: bad block at 0x000000100000
[ 3.421593] nand_read_bbt: bad block at 0x000000140000
[ 3.426859] nand_read_bbt: bad block at 0x000000160000
[ 3.432018] nand_read_bbt: bad block at 0x000000180000
[ 3.437283] nand_read_bbt: bad block at 0x0000001a0000
[ 3.442442] nand_read_bbt: bad block at 0x0000001c0000
[ 3.447707] nand_read_bbt: bad block at 0x0000001e0000
[ 3.452867] nand_read_bbt: bad block at 0x000000200000
[ 3.458133] nand_read_bbt: bad block at 0x000000220000
[ 3.463404] nand_read_bbt: bad block at 0x000000240000
[ 3.468564] nand_read_bbt: bad block at 0x000000260000
[ 3.473830] nand_read_bbt: bad block at 0x000000280000
[ 3.478990] nand_read_bbt: bad block at 0x0000002a0000
[ 3.484253] nand_read_bbt: bad block at 0x0000002c0000
[ 3.489414] nand_read_bbt: bad block at 0x0000002e0000
[ 3.494680] nand_read_bbt: bad block at 0x000000300000
[ 3.499838] nand_read_bbt: bad block at 0x000000320000
[ 3.505104] nand_read_bbt: bad block at 0x000000340000
[ 3.510262] nand_read_bbt: bad block at 0x000000360000
[ 3.515529] nand_read_bbt: bad block at 0x000000380000
[ 3.520687] nand_read_bbt: bad block at 0x0000003a0000
[ 3.525955] nand_read_bbt: bad block at 0x0000003c0000
[ 3.531121] nand_read_bbt: bad block at 0x0000003e0000
[ 3.536386] nand_read_bbt: bad block at 0x000000400000
[ 3.541544] nand_read_bbt: bad block at 0x000000420000
[ 3.546811] nand_read_bbt: bad block at 0x000000440000
[ 3.551970] nand_read_bbt: bad block at 0x000000460000
[ 3.557234] nand_read_bbt: bad block at 0x000000480000
[ 3.562394] nand_read_bbt: bad block at 0x0000004a0000
[ 3.567659] nand_read_bbt: bad block at 0x0000004c0000
[ 3.572819] nand_read_bbt: bad block at 0x0000004e0000
[ 3.578087] nand_read_bbt: bad block at 0x000000500000
[ 3.583367] nand_read_bbt: bad block at 0x000000520000
[ 3.588524] nand_read_bbt: bad block at 0x000000540000
[ 3.593788] nand_read_bbt: bad block at 0x000000560000
[ 3.598951] nand_read_bbt: bad block at 0x000000580000
[ 3.604213] nand_read_bbt: bad block at 0x0000005a0000
[ 3.609373] nand_read_bbt: bad block at 0x0000005c0000
[ 3.614639] nand_read_bbt: bad block at 0x0000005e0000
[ 3.619799] nand_read_bbt: bad block at 0x000000600000
[ 3.625064] nand_read_bbt: bad block at 0x000000620000
[ 3.630224] nand_read_bbt: bad block at 0x000000640000
[ 3.635488] nand_read_bbt: bad block at 0x000000660000
[ 3.640648] nand_read_bbt: bad block at 0x000000680000
[ 3.645914] nand_read_bbt: bad block at 0x0000006a0000
[ 3.651071] nand_read_bbt: bad block at 0x0000006c0000
[ 3.656337] nand_read_bbt: bad block at 0x0000006e0000
[ 3.661497] nand_read_bbt: bad block at 0x000000700000
[ 3.666774] nand_read_bbt: bad block at 0x000000d40000
[ 3.671939] nand_read_bbt: bad block at 0x000000d60000
[ 3.677206] nand_read_bbt: bad block at 0x000000d80000
[ 3.682373] nand_read_bbt: bad block at 0x000000da0000
[ 3.687638] nand_read_bbt: bad block at 0x000000dc0000
[ 3.692796] nand_read_bbt: bad block at 0x000000de0000
[ 3.698063] nand_read_bbt: bad block at 0x000000e00000
[ 3.703334] nand_read_bbt: bad block at 0x000000e20000
[ 3.708494] nand_read_bbt: bad block at 0x000000e40000
[ 3.713759] nand_read_bbt: bad block at 0x000000e60000
[ 3.718919] nand_read_bbt: bad block at 0x000000e80000
[ 3.724183] nand_read_bbt: bad block at 0x000000ea0000
[ 3.729343] nand_read_bbt: bad block at 0x000000ec0000
[ 3.734608] nand_read_bbt: bad block at 0x000000ee0000
[ 3.739769] nand_read_bbt: bad block at 0x000000f00000
[ 3.745033] nand_read_bbt: bad block at 0x000000f20000
[ 3.750192] nand_read_bbt: bad block at 0x000000f40000
[ 3.755459] nand_read_bbt: bad block at 0x000000f60000
[ 3.760617] nand_read_bbt: bad block at 0x000000f80000
[ 3.765882] nand_read_bbt: bad block at 0x000000fa0000
[ 3.771041] nand_read_bbt: bad block at 0x000000fc0000
[ 3.776306] nand_read_bbt: bad block at 0x000000fe0000
[ 3.781467] nand_read_bbt: bad block at 0x000001000000
[ 3.786731] nand_read_bbt: bad block at 0x000001020000
[ 3.791891] nand_read_bbt: bad block at 0x000001040000
[ 3.797156] nand_read_bbt: bad block at 0x000001060000
[ 3.802317] nand_read_bbt: bad block at 0x000001080000
[ 3.807582] nand_read_bbt: bad block at 0x0000010a0000
[ 3.812741] nand_read_bbt: bad block at 0x0000010c0000
[ 3.818005] nand_read_bbt: bad block at 0x0000010e0000
[ 3.823280] nand_read_bbt: bad block at 0x000001100000
[ 3.828438] nand_read_bbt: bad block at 0x000001120000
[ 3.833702] nand_read_bbt: bad block at 0x000001140000
[ 3.838862] nand_read_bbt: bad block at 0x000001160000
[ 3.844129] nand_read_bbt: bad block at 0x000001180000
[ 3.849294] nand_read_bbt: bad block at 0x000001660000
[ 3.854562] nand_read_bbt: bad block at 0x000001680000
[ 3.859719] nand_read_bbt: bad block at 0x0000016a0000
[ 3.864986] nand_read_bbt: bad block at 0x0000016c0000
[ 3.870143] nand_read_bbt: bad block at 0x0000016e0000
[ 3.875409] nand_read_bbt: bad block at 0x000001700000
[ 3.880569] nand_read_bbt: bad block at 0x000001720000
[ 3.885836] nand_read_bbt: bad block at 0x000001740000
[ 3.890994] nand_read_bbt: bad block at 0x000001760000
[ 3.896260] nand_read_bbt: bad block at 0x000001780000
[ 3.901417] nand_read_bbt: bad block at 0x0000017a0000
[ 3.906683] nand_read_bbt: bad block at 0x0000017c0000
[ 3.911843] nand_read_bbt: bad block at 0x0000017e0000
[ 3.917108] nand_read_bbt: bad block at 0x000001800000
[ 3.922267] nand_read_bbt: bad block at 0x000001820000
[ 3.927534] nand_read_bbt: bad block at 0x000001840000
[ 3.932691] nand_read_bbt: bad block at 0x000001860000
[ 3.937957] nand_read_bbt: bad block at 0x000001880000
[ 3.943230] nand_read_bbt: bad block at 0x0000018a0000
[ 3.948390] nand_read_bbt: bad block at 0x0000018c0000
[ 3.953654] nand_read_bbt: bad block at 0x0000018e0000
[ 3.958815] nand_read_bbt: bad block at 0x000001900000
[ 3.964101] nand_read_bbt: bad block at 0x000001920000
[ 3.969264] nand_read_bbt: bad block at 0x000001940000
[ 3.974531] nand_read_bbt: bad block at 0x000001960000
[ 3.979690] nand_read_bbt: bad block at 0x000001980000
[ 3.984952] nand_read_bbt: bad block at 0x0000019a0000
[ 3.990114] nand_read_bbt: bad block at 0x0000019c0000
[ 3.995381] nand_read_bbt: bad block at 0x0000019e0000
[ 4.000539] nand_read_bbt: bad block at 0x000001a00000
[ 4.005804] nand_read_bbt: bad block at 0x000001a20000
[ 4.010964] nand_read_bbt: bad block at 0x000001a40000
[ 4.016236] nand_read_bbt: bad block at 0x000001a60000
[ 4.021398] nand_read_bbt: bad block at 0x000001a80000
[ 4.026664] nand_read_bbt: bad block at 0x000001aa0000
[ 4.031822] nand_read_bbt: bad block at 0x000001ac0000
[ 4.037086] nand_read_bbt: bad block at 0x000001ae0000
[ 4.042247] nand_read_bbt: bad block at 0x000001b00000
[ 4.047512] nand_read_bbt: bad block at 0x000001b20000
[ 4.052672] nand_read_bbt: bad block at 0x000001b40000
[ 4.057935] nand_read_bbt: bad block at 0x000001b60000
[ 4.063211] nand_read_bbt: bad block at 0x000001b80000
[ 4.068377] nand_read_bbt: bad block at 0x000001ba0000
[ 4.073643] nand_read_bbt: bad block at 0x000001bc0000
[ 4.078801] nand_read_bbt: bad block at 0x000001be0000
[ 4.084068] nand_read_bbt: bad block at 0x000001c00000
[ 4.089235] nand_read_bbt: bad block at 0x000001c20000
[ 4.094836] nand_read_bbt: bad block at 0x000001c40000
[ 4.100012] nand_read_bbt: bad block at 0x000001c60000
[ 4.105327] nand_read_bbt: bad block at 0x000001c80000
[ 4.110488] nand_read_bbt: bad block at 0x000001ca0000
[ 4.115755] nand_read_bbt: bad block at 0x000001cc0000
[ 4.120923] nand_read_bbt: bad block at 0x000001ce0000
[ 4.126186] nand_read_bbt: bad block at 0x000001d00000
[ 4.131347] nand_read_bbt: bad block at 0x000001d20000
[ 4.136610] nand_read_bbt: bad block at 0x000001d40000
[ 4.141770] nand_read_bbt: bad block at 0x000001d60000
[ 4.147038] nand_read_bbt: bad block at 0x000001d80000
[ 4.152204] nand_read_bbt: bad block at 0x000001da0000
[ 4.157470] nand_read_bbt: bad block at 0x000001dc0000
[ 4.162627] nand_read_bbt: bad block at 0x000001de0000
[ 4.167894] nand_read_bbt: bad block at 0x000001e00000
[ 4.173167] nand_read_bbt: bad block at 0x000001e20000
[ 4.178325] nand_read_bbt: bad block at 0x000001e40000
[ 4.183591] nand_read_bbt: bad block at 0x000001e60000
[ 4.188752] nand_read_bbt: bad block at 0x000001e80000
[ 4.194015] nand_read_bbt: bad block at 0x000001ea0000
[ 4.199175] nand_read_bbt: bad block at 0x000001ec0000
[ 4.204441] nand_read_bbt: bad block at 0x000001ee0000
[ 4.209601] nand_read_bbt: bad block at 0x000001f00000
[ 4.214865] nand_read_bbt: bad block at 0x000001f20000
[ 4.220024] nand_read_bbt: bad block at 0x000001f40000
[ 4.225290] nand_read_bbt: bad block at 0x000001f60000
[ 4.230450] nand_read_bbt: bad block at 0x000001f80000
[ 4.235713] nand_read_bbt: bad block at 0x000001fa0000
[ 4.240874] nand_read_bbt: bad block at 0x000001fc0000
[ 4.246138] nand_read_bbt: bad block at 0x000001fe0000
[ 4.251299] nand_read_bbt: bad block at 0x000002000000
[ 4.256564] nand_read_bbt: bad block at 0x000002020000
[ 4.261723] nand_read_bbt: bad block at 0x000002040000
[ 4.266988] nand_read_bbt: bad block at 0x000002060000
[ 4.272148] nand_read_bbt: bad block at 0x000002080000
[ 4.277412] nand_read_bbt: bad block at 0x0000020a0000
[ 4.282572] nand_read_bbt: bad block at 0x0000020c0000
[ 4.287837] nand_read_bbt: bad block at 0x0000020e0000
[ 4.293111] nand_read_bbt: bad block at 0x000002100000
[ 4.298278] nand_read_bbt: bad block at 0x000002120000
[ 4.303545] nand_read_bbt: bad block at 0x000002140000
[ 4.308703] nand_read_bbt: bad block at 0x000002160000
[ 4.313967] nand_read_bbt: bad block at 0x000002180000
[ 4.319128] nand_read_bbt: bad block at 0x0000021a0000
[ 4.324391] nand_read_bbt: bad block at 0x0000021c0000
[ 4.329552] nand_read_bbt: bad block at 0x0000021e0000
[ 4.334818] nand_read_bbt: bad block at 0x000002200000
[ 4.339977] nand_read_bbt: bad block at 0x000002220000
[ 4.345242] nand_read_bbt: bad block at 0x000002240000
[ 4.350402] nand_read_bbt: bad block at 0x000002260000
[ 4.355667] nand_read_bbt: bad block at 0x000002280000
[ 4.360826] nand_read_bbt: bad block at 0x0000022a0000
[ 4.366091] nand_read_bbt: bad block at 0x0000022c0000
[ 4.371251] nand_read_bbt: bad block at 0x0000022e0000
[ 4.376515] nand_read_bbt: bad block at 0x000002300000
[ 4.381674] nand_read_bbt: bad block at 0x000002320000
[ 4.386941] nand_read_bbt: bad block at 0x000002340000
[ 4.392101] nand_read_bbt: bad block at 0x000002360000
[ 4.397365] nand_read_bbt: bad block at 0x000002380000
[ 4.402523] nand_read_bbt: bad block at 0x0000023a0000
[ 4.407789] nand_read_bbt: bad block at 0x0000023c0000
[ 4.413062] nand_read_bbt: bad block at 0x0000023e0000
[ 4.418223] nand_read_bbt: bad block at 0x000002400000
[ 4.423485] nand_read_bbt: bad block at 0x000002420000
[ 4.428646] nand_read_bbt: bad block at 0x000002440000
[ 4.433907] nand_read_bbt: bad block at 0x000002460000
[ 4.439071] nand_read_bbt: bad block at 0x000002480000
[ 4.444336] nand_read_bbt: bad block at 0x0000024a0000
[ 4.449496] nand_read_bbt: bad block at 0x0000024c0000
[ 4.454759] nand_read_bbt: bad block at 0x0000024e0000
[ 4.459922] nand_read_bbt: bad block at 0x000002500000
[ 4.465187] nand_read_bbt: bad block at 0x000002520000
[ 4.470344] nand_read_bbt: bad block at 0x000002540000
[ 4.475609] nand_read_bbt: bad block at 0x000002560000
[ 4.480771] nand_read_bbt: bad block at 0x000002580000
[ 4.486033] nand_read_bbt: bad block at 0x0000025a0000
[ 4.491194] nand_read_bbt: bad block at 0x0000025c0000
[ 4.496458] nand_read_bbt: bad block at 0x0000025e0000
[ 4.501619] nand_read_bbt: bad block at 0x000002600000
[ 4.506882] nand_read_bbt: bad block at 0x000002620000
[ 4.512042] nand_read_bbt: bad block at 0x000002640000
[ 4.517307] nand_read_bbt: bad block at 0x000002660000
[ 4.522468] nand_read_bbt: bad block at 0x000002680000
[ 4.527732] nand_read_bbt: bad block at 0x0000026a0000
[ 4.532891] nand_read_bbt: bad block at 0x0000026c0000
[ 4.538162] nand_read_bbt: bad block at 0x0000026e0000
[ 4.543428] nand_read_bbt: bad block at 0x000002700000
[ 4.548590] nand_read_bbt: bad block at 0x000002720000
[ 4.553857] nand_read_bbt: bad block at 0x000002740000
[ 4.559014] nand_read_bbt: bad block at 0x000002760000
[ 4.564280] nand_read_bbt: bad block at 0x000002780000
[ 4.569438] nand_read_bbt: bad block at 0x0000027a0000
[ 4.574705] nand_read_bbt: bad block at 0x0000027c0000
[ 4.579863] nand_read_bbt: bad block at 0x0000027e0000
[ 4.585129] nand_read_bbt: bad block at 0x000002800000
[ 4.590288] nand_read_bbt: bad block at 0x000002820000
[ 4.595558] nand_read_bbt: bad block at 0x000002a40000
[ 4.600720] nand_read_bbt: bad block at 0x000002a60000
[ 4.606012] nand_read_bbt: bad block at 0x000002bc0000
[ 4.611182] nand_read_bbt: bad block at 0x000002c40000
[ 4.616449] nand_read_bbt: bad block at 0x000002c60000
[ 4.621614] nand_read_bbt: bad block at 0x000002c80000
[ 4.626878] nand_read_bbt: bad block at 0x000002ca0000
[ 4.632036] nand_read_bbt: bad block at 0x000002cc0000
[ 4.637301] nand_read_bbt: bad block at 0x000002ce0000
[ 4.642463] nand_read_bbt: bad block at 0x000002d00000
[ 4.647726] nand_read_bbt: bad block at 0x000002d20000
[ 4.652888] nand_read_bbt: bad block at 0x000002d40000
[ 4.658167] nand_read_bbt: bad block at 0x000002d60000
[ 4.663433] nand_read_bbt: bad block at 0x000002d80000
[ 4.668593] nand_read_bbt: bad block at 0x000002da0000
[ 4.673859] nand_read_bbt: bad block at 0x000002dc0000
[ 4.679017] nand_read_bbt: bad block at 0x000002de0000
[ 4.684282] nand_read_bbt: bad block at 0x000002e00000
[ 4.689442] nand_read_bbt: bad block at 0x000002e20000
[ 4.694707] nand_read_bbt: bad block at 0x000002e40000
[ 4.699867] nand_read_bbt: bad block at 0x000002e60000
[ 4.705133] nand_read_bbt: bad block at 0x000002e80000
[ 4.710292] nand_read_bbt: bad block at 0x000002ea0000
[ 4.715558] nand_read_bbt: bad block at 0x000002ec0000
[ 4.720716] nand_read_bbt: bad block at 0x000002ee0000
[ 4.725983] nand_read_bbt: bad block at 0x000002f00000
[ 4.731141] nand_read_bbt: bad block at 0x000002f20000
[ 4.736406] nand_read_bbt: bad block at 0x000002f40000
[ 4.741566] nand_read_bbt: bad block at 0x000002f60000
[ 4.746830] nand_read_bbt: bad block at 0x000002f80000
[ 4.751991] nand_read_bbt: bad block at 0x000002fa0000
[ 4.757255] nand_read_bbt: bad block at 0x000002fc0000
[ 4.762415] nand_read_bbt: bad block at 0x000002fe0000
[ 4.767681] nand_read_bbt: bad block at 0x000003000000
[ 4.772839] nand_read_bbt: bad block at 0x000003020000
[ 4.778104] nand_read_bbt: bad block at 0x000003040000
[ 4.783378] nand_read_bbt: bad block at 0x000003060000
[ 4.788536] nand_read_bbt: bad block at 0x000003080000
[ 4.793802] nand_read_bbt: bad block at 0x0000030a0000
[ 4.798962] nand_read_bbt: bad block at 0x0000030c0000
[ 4.804224] nand_read_bbt: bad block at 0x0000030e0000
[ 4.809387] nand_read_bbt: bad block at 0x000003100000
[ 4.814650] nand_read_bbt: bad block at 0x000003120000
[ 4.819809] nand_read_bbt: bad block at 0x000003140000
[ 4.825075] nand_read_bbt: bad block at 0x000003160000
[ 4.830235] nand_read_bbt: bad block at 0x000003180000
[ 4.835499] nand_read_bbt: bad block at 0x0000031a0000
[ 4.840661] nand_read_bbt: bad block at 0x0000031c0000
[ 4.845924] nand_read_bbt: bad block at 0x0000031e0000
[ 4.851085] nand_read_bbt: bad block at 0x000003200000
[ 4.856350] nand_read_bbt: bad block at 0x000003220000
[ 4.861510] nand_read_bbt: bad block at 0x000003240000
[ 4.867593] 6 cmdlinepart partitions found on MTD device pxa3xx_nand-0
[ 4.874441] Creating 6 MTD partitions on "pxa3xx_nand-0":
[ 4.879899] 0x000000000000-0x000000020000 : "TIMH"
[ 4.888233] 0x000000020000-0x000000040000 : "OBMI"
[ 4.897663] 0x000000040000-0x000000100000 : "barebox"
[ 4.907444] 0x000000100000-0x000000140000 : "barebox-env"
[ 4.917447] 0x000000140000-0x000000d40000 : "kernel"
[ 4.927958] 0x000000d40000-0x000003260000 : "root"
[ 4.941349] smc91x.c: v1.1, sep 22 2004 by Nicolas Pitre <nico@fluxnic.net>
[ 4.994377] smc91x smc91x.0 eth0: SMC91C11xFD (rev 2) at c4867300 IRQ 214
[ 5.001216] DMA c386d710 [nowait]
[ 5.005891] smc91x smc91x.0 eth0: Ethernet addr: 00:0e:0c:a7:26:f7
[ 5.018621] input: pxa27x-keypad as /devices/platform/pxa27x-keypad/input/input0
[ 5.028503] pxa-rtc pxa-rtc: failed to find rtc clock source
[ 5.036108] rtc rtc0: invalid alarm value: 0-1-1 0:0:0
[ 5.043390] pxa-rtc pxa-rtc: rtc core: registered pxa-rtc as rtc0
[ 5.054574] sa1100_wdt: SA1100/PXA2xx Watchdog Timer: timer margin 60 sec
[ 5.106260] soc-audio soc-audio: ASoC: machine Zylonite should use snd_soc_register_card()
[ 5.130166] wm9713-codec wm9713-codec: Control not supported for path Mic B Source -> [MPB] -> Mic B Pre Amp
[ 5.141137] wm9713-codec wm9713-codec: ASoC: no dapm match for Mic B Source --> MPB --> Mic B Pre Amp
[ 5.150835] wm9713-codec wm9713-codec: ASoC: Failed to add route Mic B Source -> MPB -> Mic B Pre Amp
[ 5.164361] soc-audio soc-audio: wm9713-hifi <-> pxa2xx-ac97 mapping ok
[ 5.172711] soc-audio soc-audio: wm9713-aux <-> pxa2xx-ac97-aux mapping ok
[ 5.183377] soc-audio soc-audio: wm9713-voice <-> pxa-ssp-dai.2 mapping ok
[ 5.191817] wm9713-codec wm9713-codec: ASoC: mux Sidetone Mux has no paths
[ 5.232193] NET: Registered protocol family 17
[ 5.238583] Key type dns_resolver registered
[ 5.244879] XScale iWMMXt coprocessor detected.
[ 5.257208] Loading compiled-in X.509 certificates
[ 5.277841] ubi0: attaching mtd5
[ 5.282062] marvell-nfc pxa3xx-nand:
[ 5.282062] NDCR: 0xdd079fff
[ 5.282062] NDCB0: 0x000d3000
[ 5.282062] NDCB1: 0x23400000
[ 5.282062] NDCB2: 0x00000000
[ 5.282062] NDCB3: 0x00000000
[ 5.302767] marvell-nfc pxa3xx-nand:
[ 5.302767] NDCR: 0xdd079fff
[ 5.302767] NDCB0: 0x000d3000
[ 5.302767] NDCB1: 0x23410000
[ 5.302767] NDCB2: 0x00000000
[ 5.302767] NDCB3: 0x00000000
[ 5.322069] marvell-nfc pxa3xx-nand:
[ 5.322069] NDCR: 0x9d079fff
[ 5.322069] NDCB0: 0x000d3000
[ 5.322069] NDCB1: 0x23410000
[ 5.322069] NDCB2: 0x00000000
[ 5.322069] NDCB3: 0x00000000
[ 5.341520] marvell-nfc pxa3xx-nand:
[ 5.341520] NDCR: 0xdd079fff
[ 5.341520] NDCB0: 0x000d3000
[ 5.341520] NDCB1: 0x23800000
[ 5.341520] NDCB2: 0x00000000
[ 5.341520] NDCB3: 0x00000000
[ 5.361115] marvell-nfc pxa3xx-nand:
[ 5.361115] NDCR: 0xdd079fff
[ 5.361115] NDCB0: 0x000d3000
[ 5.361115] NDCB1: 0x23810000
[ 5.361115] NDCB2: 0x00000000
[ 5.361115] NDCB3: 0x00000000
[ 5.380361] marvell-nfc pxa3xx-nand:
[ 5.380361] NDCR: 0x9d079fff
[ 5.380361] NDCB0: 0x000d3000
[ 5.380361] NDCB1: 0x23810000
[ 5.380361] NDCB2: 0x00000000
[ 5.380361] NDCB3: 0x00000000
[ 5.399699] marvell-nfc pxa3xx-nand:
[ 5.399699] NDCR: 0xdd079fff
[ 5.399699] NDCB0: 0x000d3000
[ 5.399699] NDCB1: 0x23c00000
[ 5.399699] NDCB2: 0x00000000
[ 5.399699] NDCB3: 0x00000000
[ 5.418790] marvell-nfc pxa3xx-nand:
[ 5.418790] NDCR: 0xdd079fff
[ 5.418790] NDCB0: 0x000d3000
[ 5.418790] NDCB1: 0x23c10000
[ 5.418790] NDCB2: 0x00000000
[ 5.418790] NDCB3: 0x00000000
[ 5.437771] marvell-nfc pxa3xx-nand:
[ 5.437771] NDCR: 0x9d079fff
[ 5.437771] NDCB0: 0x000d3000
[ 5.437771] NDCB1: 0x23c10000
[ 5.437771] NDCB2: 0x00000000
[ 5.437771] NDCB3: 0x00000000
[ 5.456876] marvell-nfc pxa3xx-nand:
[ 5.456876] NDCR: 0xdd079fff
[ 5.456876] NDCB0: 0x000d3000
[ 5.456876] NDCB1: 0x24000000
[ 5.456876] NDCB2: 0x00000000
[ 5.456876] NDCB3: 0x00000000
[ 5.475940] marvell-nfc pxa3xx-nand:
[ 5.475940] NDCR: 0xdd079fff
[ 5.475940] NDCB0: 0x000d3000
[ 5.475940] NDCB1: 0x24010000
[ 5.475940] NDCB2: 0x00000000
[ 5.475940] NDCB3: 0x00000000
[ 5.494922] marvell-nfc pxa3xx-nand:
[ 5.494922] NDCR: 0x9d079fff
[ 5.494922] NDCB0: 0x000d3000
[ 5.494922] NDCB1: 0x24010000
[ 5.494922] NDCB2: 0x00000000
[ 5.494922] NDCB3: 0x00000000
[ 5.514028] marvell-nfc pxa3xx-nand:
[ 5.514028] NDCR: 0xdd079fff
[ 5.514028] NDCB0: 0x000d3000
[ 5.514028] NDCB1: 0x24400000
[ 5.514028] NDCB2: 0x00000000
[ 5.514028] NDCB3: 0x00000000
[ 5.533183] marvell-nfc pxa3xx-nand:
[ 5.533183] NDCR: 0xdd079fff
[ 5.533183] NDCB0: 0x000d3000
[ 5.533183] NDCB1: 0x24410000
[ 5.533183] NDCB2: 0x00000000
[ 5.533183] NDCB3: 0x00000000
[ 5.552166] marvell-nfc pxa3xx-nand:
[ 5.552166] NDCR: 0x9d079fff
[ 5.552166] NDCB0: 0x000d3000
[ 5.552166] NDCB1: 0x24410000
[ 5.552166] NDCB2: 0x00000000
[ 5.552166] NDCB3: 0x00000000
[ 5.571273] marvell-nfc pxa3xx-nand:
[ 5.571273] NDCR: 0xdd079fff
[ 5.571273] NDCB0: 0x000d3000
[ 5.571273] NDCB1: 0x24800000
[ 5.571273] NDCB2: 0x00000000
[ 5.571273] NDCB3: 0x00000000
[ 5.590337] marvell-nfc pxa3xx-nand:
[ 5.590337] NDCR: 0xdd079fff
[ 5.590337] NDCB0: 0x000d3000
[ 5.590337] NDCB1: 0x24810000
[ 5.590337] NDCB2: 0x00000000
[ 5.590337] NDCB3: 0x00000000
[ 5.609318] marvell-nfc pxa3xx-nand:
[ 5.609318] NDCR: 0x9d079fff
[ 5.609318] NDCB0: 0x000d3000
[ 5.609318] NDCB1: 0x24810000
[ 5.609318] NDCB2: 0x00000000
[ 5.609318] NDCB3: 0x00000000
[ 5.628426] marvell-nfc pxa3xx-nand:
[ 5.628426] NDCR: 0xdd079fff
[ 5.628426] NDCB0: 0x000d3000
[ 5.628426] NDCB1: 0x24c00000
[ 5.628426] NDCB2: 0x00000000
[ 5.628426] NDCB3: 0x00000000
[ 5.647489] marvell-nfc pxa3xx-nand:
[ 5.647489] NDCR: 0xdd079fff
[ 5.647489] NDCB0: 0x000d3000
[ 5.647489] NDCB1: 0x24c10000
[ 5.647489] NDCB2: 0x00000000
[ 5.647489] NDCB3: 0x00000000
[ 5.666475] marvell-nfc pxa3xx-nand:
[ 5.666475] NDCR: 0x9d079fff
[ 5.666475] NDCB0: 0x000d3000
[ 5.666475] NDCB1: 0x24c10000
[ 5.666475] NDCB2: 0x00000000
[ 5.666475] NDCB3: 0x00000000
[ 5.685575] marvell-nfc pxa3xx-nand:
[ 5.685575] NDCR: 0xdd079fff
[ 5.685575] NDCB0: 0x000d3000
[ 5.685575] NDCB1: 0x25000000
[ 5.685575] NDCB2: 0x00000000
[ 5.685575] NDCB3: 0x00000000
[ 5.704632] marvell-nfc pxa3xx-nand:
[ 5.704632] NDCR: 0xdd079fff
[ 5.704632] NDCB0: 0x000d3000
[ 5.704632] NDCB1: 0x25010000
[ 5.704632] NDCB2: 0x00000000
[ 5.704632] NDCB3: 0x00000000
[ 5.723609] marvell-nfc pxa3xx-nand:
[ 5.723609] NDCR: 0x9d079fff
[ 5.723609] NDCB0: 0x000d3000
[ 5.723609] NDCB1: 0x25010000
[ 5.723609] NDCB2: 0x00000000
[ 5.723609] NDCB3: 0x00000000
[ 5.742713] marvell-nfc pxa3xx-nand:
[ 5.742713] NDCR: 0xdd079fff
[ 5.742713] NDCB0: 0x000d3000
[ 5.742713] NDCB1: 0x25400000
[ 5.742713] NDCB2: 0x00000000
[ 5.742713] NDCB3: 0x00000000
[ 5.761769] marvell-nfc pxa3xx-nand:
[ 5.761769] NDCR: 0xdd079fff
[ 5.761769] NDCB0: 0x000d3000
[ 5.761769] NDCB1: 0x25410000
[ 5.761769] NDCB2: 0x00000000
[ 5.761769] NDCB3: 0x00000000
[ 5.780750] marvell-nfc pxa3xx-nand:
[ 5.780750] NDCR: 0x9d079fff
[ 5.780750] NDCB0: 0x000d3000
[ 5.780750] NDCB1: 0x25410000
[ 5.780750] NDCB2: 0x00000000
[ 5.780750] NDCB3: 0x00000000
[ 5.799855] marvell-nfc pxa3xx-nand:
[ 5.799855] NDCR: 0xdd079fff
[ 5.799855] NDCB0: 0x000d3000
[ 5.799855] NDCB1: 0x25800000
[ 5.799855] NDCB2: 0x00000000
[ 5.799855] NDCB3: 0x00000000
[ 5.818918] marvell-nfc pxa3xx-nand:
[ 5.818918] NDCR: 0xdd079fff
[ 5.818918] NDCB0: 0x000d3000
[ 5.818918] NDCB1: 0x25810000
[ 5.818918] NDCB2: 0x00000000
[ 5.818918] NDCB3: 0x00000000
[ 5.837903] marvell-nfc pxa3xx-nand:
[ 5.837903] NDCR: 0x9d079fff
[ 5.837903] NDCB0: 0x000d3000
[ 5.837903] NDCB1: 0x25810000
[ 5.837903] NDCB2: 0x00000000
[ 5.837903] NDCB3: 0x00000000
[ 5.857009] marvell-nfc pxa3xx-nand:
[ 5.857009] NDCR: 0xdd079fff
[ 5.857009] NDCB0: 0x000d3000
[ 5.857009] NDCB1: 0x25c00000
[ 5.857009] NDCB2: 0x00000000
[ 5.857009] NDCB3: 0x00000000
[ 5.876071] marvell-nfc pxa3xx-nand:
[ 5.876071] NDCR: 0xdd079fff
[ 5.876071] NDCB0: 0x000d3000
[ 5.876071] NDCB1: 0x25c10000
[ 5.876071] NDCB2: 0x00000000
[ 5.876071] NDCB3: 0x00000000
[ 5.895047] marvell-nfc pxa3xx-nand:
[ 5.895047] NDCR: 0x9d079fff
[ 5.895047] NDCB0: 0x000d3000
[ 5.895047] NDCB1: 0x25c10000
[ 5.895047] NDCB2: 0x00000000
[ 5.895047] NDCB3: 0x00000000
[ 5.914152] marvell-nfc pxa3xx-nand:
[ 5.914152] NDCR: 0xdd079fff
[ 5.914152] NDCB0: 0x000d3000
[ 5.914152] NDCB1: 0x26000000
[ 5.914152] NDCB2: 0x00000000
[ 5.914152] NDCB3: 0x00000000
[ 5.933285] marvell-nfc pxa3xx-nand:
[ 5.933285] NDCR: 0xdd079fff
[ 5.933285] NDCB0: 0x000d3000
[ 5.933285] NDCB1: 0x26010000
[ 5.933285] NDCB2: 0x00000000
[ 5.933285] NDCB3: 0x00000000
[ 5.952247] marvell-nfc pxa3xx-nand:
[ 5.952247] NDCR: 0x9d079fff
[ 5.952247] NDCB0: 0x000d3000
[ 5.952247] NDCB1: 0x26010000
[ 5.952247] NDCB2: 0x00000000
[ 5.952247] NDCB3: 0x00000000
[ 5.971354] marvell-nfc pxa3xx-nand:
[ 5.971354] NDCR: 0xdd079fff
[ 5.971354] NDCB0: 0x000d3000
[ 5.971354] NDCB1: 0x26400000
[ 5.971354] NDCB2: 0x00000000
[ 5.971354] NDCB3: 0x00000000
[ 5.990415] marvell-nfc pxa3xx-nand:
[ 5.990415] NDCR: 0xdd079fff
[ 5.990415] NDCB0: 0x000d3000
[ 5.990415] NDCB1: 0x26410000
[ 5.990415] NDCB2: 0x00000000
[ 5.990415] NDCB3: 0x00000000
[ 6.009391] marvell-nfc pxa3xx-nand:
[ 6.009391] NDCR: 0x9d079fff
[ 6.009391] NDCB0: 0x000d3000
[ 6.009391] NDCB1: 0x26410000
[ 6.009391] NDCB2: 0x00000000
[ 6.009391] NDCB3: 0x00000000
[ 6.028510] marvell-nfc pxa3xx-nand:
[ 6.028510] NDCR: 0xdd079fff
[ 6.028510] NDCB0: 0x000d3000
[ 6.028510] NDCB1: 0x26800000
[ 6.028510] NDCB2: 0x00000000
[ 6.028510] NDCB3: 0x00000000
[ 6.047572] marvell-nfc pxa3xx-nand:
[ 6.047572] NDCR: 0xdd079fff
[ 6.047572] NDCB0: 0x000d3000
[ 6.047572] NDCB1: 0x26810000
[ 6.047572] NDCB2: 0x00000000
[ 6.047572] NDCB3: 0x00000000
[ 6.066553] marvell-nfc pxa3xx-nand:
[ 6.066553] NDCR: 0x9d079fff
[ 6.066553] NDCB0: 0x000d3000
[ 6.066553] NDCB1: 0x26810000
[ 6.066553] NDCB2: 0x00000000
[ 6.066553] NDCB3: 0x00000000
[ 6.085662] marvell-nfc pxa3xx-nand:
[ 6.085662] NDCR: 0xdd079fff
[ 6.085662] NDCB0: 0x000d3000
[ 6.085662] NDCB1: 0x26c00000
[ 6.085662] NDCB2: 0x00000000
[ 6.085662] NDCB3: 0x00000000
[ 6.105275] marvell-nfc pxa3xx-nand:
[ 6.105275] NDCR: 0xdd079fff
[ 6.105275] NDCB0: 0x000d3000
[ 6.105275] NDCB1: 0x26c10000
[ 6.105275] NDCB2: 0x00000000
[ 6.105275] NDCB3: 0x00000000
[ 6.124291] marvell-nfc pxa3xx-nand:
[ 6.124291] NDCR: 0x9d079fff
[ 6.124291] NDCB0: 0x000d3000
[ 6.124291] NDCB1: 0x26c10000
[ 6.124291] NDCB2: 0x00000000
[ 6.124291] NDCB3: 0x00000000
[ 6.143431] marvell-nfc pxa3xx-nand:
[ 6.143431] NDCR: 0xdd079fff
[ 6.143431] NDCB0: 0x000d3000
[ 6.143431] NDCB1: 0x27000000
[ 6.143431] NDCB2: 0x00000000
[ 6.143431] NDCB3: 0x00000000
[ 6.162492] marvell-nfc pxa3xx-nand:
[ 6.162492] NDCR: 0xdd079fff
[ 6.162492] NDCB0: 0x000d3000
[ 6.162492] NDCB1: 0x27010000
[ 6.162492] NDCB2: 0x00000000
[ 6.162492] NDCB3: 0x00000000
[ 6.181482] marvell-nfc pxa3xx-nand:
[ 6.181482] NDCR: 0x9d079fff
[ 6.181482] NDCB0: 0x000d3000
[ 6.181482] NDCB1: 0x27010000
[ 6.181482] NDCB2: 0x00000000
[ 6.181482] NDCB3: 0x00000000
[ 6.200594] marvell-nfc pxa3xx-nand:
[ 6.200594] NDCR: 0xdd079fff
[ 6.200594] NDCB0: 0x000d3000
[ 6.200594] NDCB1: 0x27400000
[ 6.200594] NDCB2: 0x00000000
[ 6.200594] NDCB3: 0x00000000
[ 6.219651] marvell-nfc pxa3xx-nand:
[ 6.219651] NDCR: 0xdd079fff
[ 6.219651] NDCB0: 0x000d3000
[ 6.219651] NDCB1: 0x27410000
[ 6.219651] NDCB2: 0x00000000
[ 6.219651] NDCB3: 0x00000000
[ 6.238628] marvell-nfc pxa3xx-nand:
[ 6.238628] NDCR: 0x9d079fff
[ 6.238628] NDCB0: 0x000d3000
[ 6.238628] NDCB1: 0x27410000
[ 6.238628] NDCB2: 0x00000000
[ 6.238628] NDCB3: 0x00000000
[ 6.257763] marvell-nfc pxa3xx-nand:
[ 6.257763] NDCR: 0xdd079fff
[ 6.257763] NDCB0: 0x000d3000
[ 6.257763] NDCB1: 0x27800000
[ 6.257763] NDCB2: 0x00000000
[ 6.257763] NDCB3: 0x00000000
[ 6.276826] marvell-nfc pxa3xx-nand:
[ 6.276826] NDCR: 0xdd079fff
[ 6.276826] NDCB0: 0x000d3000
[ 6.276826] NDCB1: 0x27810000
[ 6.276826] NDCB2: 0x00000000
[ 6.276826] NDCB3: 0x00000000
[ 6.295914] marvell-nfc pxa3xx-nand:
[ 6.295914] NDCR: 0xdd079fff
[ 6.295914] NDCB0: 0x000d3000
[ 6.295914] NDCB1: 0x27c00000
[ 6.295914] NDCB2: 0x00000000
[ 6.295914] NDCB3: 0x00000000
[ 6.314978] marvell-nfc pxa3xx-nand:
[ 6.314978] NDCR: 0xdd079fff
[ 6.314978] NDCB0: 0x000d3000
[ 6.314978] NDCB1: 0x27c10000
[ 6.314978] NDCB2: 0x00000000
[ 6.314978] NDCB3: 0x00000000
[ 6.333957] marvell-nfc pxa3xx-nand:
[ 6.333957] NDCR: 0x9d079fff
[ 6.333957] NDCB0: 0x000d3000
[ 6.333957] NDCB1: 0x27c10000
[ 6.333957] NDCB2: 0x00000000
[ 6.333957] NDCB3: 0x00000000
[ 6.353164] marvell-nfc pxa3xx-nand:
[ 6.353164] NDCR: 0xdd079fff
[ 6.353164] NDCB0: 0x000d3000
[ 6.353164] NDCB1: 0x28000000
[ 6.353164] NDCB2: 0x00000000
[ 6.353164] NDCB3: 0x00000000
[ 6.372184] marvell-nfc pxa3xx-nand:
[ 6.372184] NDCR: 0xdd079fff
[ 6.372184] NDCB0: 0x000d3000
[ 6.372184] NDCB1: 0x28010000
[ 6.372184] NDCB2: 0x00000000
[ 6.372184] NDCB3: 0x00000000
[ 6.391168] marvell-nfc pxa3xx-nand:
[ 6.391168] NDCR: 0x9d079fff
[ 6.391168] NDCB0: 0x000d3000
[ 6.391168] NDCB1: 0x28010000
[ 6.391168] NDCB2: 0x00000000
[ 6.391168] NDCB3: 0x00000000
[ 6.410268] marvell-nfc pxa3xx-nand:
[ 6.410268] NDCR: 0xdd079fff
[ 6.410268] NDCB0: 0x000d3000
[ 6.410268] NDCB1: 0x28400000
[ 6.410268] NDCB2: 0x00000000
[ 6.410268] NDCB3: 0x00000000
[ 6.429335] marvell-nfc pxa3xx-nand:
[ 6.429335] NDCR: 0xdd079fff
[ 6.429335] NDCB0: 0x000d3000
[ 6.429335] NDCB1: 0x28410000
[ 6.429335] NDCB2: 0x00000000
[ 6.429335] NDCB3: 0x00000000
[ 6.448408] marvell-nfc pxa3xx-nand:
[ 6.448408] NDCR: 0xdd079fff
[ 6.448408] NDCB0: 0x000d3000
[ 6.448408] NDCB1: 0x28800000
[ 6.448408] NDCB2: 0x00000000
[ 6.448408] NDCB3: 0x00000000
[ 6.467471] marvell-nfc pxa3xx-nand:
[ 6.467471] NDCR: 0xdd079fff
[ 6.467471] NDCB0: 0x000d3000
[ 6.467471] NDCB1: 0x28810000
[ 6.467471] NDCB2: 0x00000000
[ 6.467471] NDCB3: 0x00000000
[ 6.486456] marvell-nfc pxa3xx-nand:
[ 6.486456] NDCR: 0x9d079fff
[ 6.486456] NDCB0: 0x000d3000
[ 6.486456] NDCB1: 0x28810000
[ 6.486456] NDCB2: 0x00000000
[ 6.486456] NDCB3: 0x00000000
[ 6.505554] marvell-nfc pxa3xx-nand:
[ 6.505554] NDCR: 0xdd079fff
[ 6.505554] NDCB0: 0x000d3000
[ 6.505554] NDCB1: 0x28c00000
[ 6.505554] NDCB2: 0x00000000
[ 6.505554] NDCB3: 0x00000000
[ 6.524610] marvell-nfc pxa3xx-nand:
[ 6.524610] NDCR: 0xdd079fff
[ 6.524610] NDCB0: 0x000d3000
[ 6.524610] NDCB1: 0x28c10000
[ 6.524610] NDCB2: 0x00000000
[ 6.524610] NDCB3: 0x00000000
[ 6.543589] marvell-nfc pxa3xx-nand:
[ 6.543589] NDCR: 0x9d079fff
[ 6.543589] NDCB0: 0x000d3000
[ 6.543589] NDCB1: 0x28c10000
[ 6.543589] NDCB2: 0x00000000
[ 6.543589] NDCB3: 0x00000000
[ 6.562688] marvell-nfc pxa3xx-nand:
[ 6.562688] NDCR: 0xdd079fff
[ 6.562688] NDCB0: 0x000d3000
[ 6.562688] NDCB1: 0x29000000
[ 6.562688] NDCB2: 0x00000000
[ 6.562688] NDCB3: 0x00000000
[ 6.581750] marvell-nfc pxa3xx-nand:
[ 6.581750] NDCR: 0xdd079fff
[ 6.581750] NDCB0: 0x000d3000
[ 6.581750] NDCB1: 0x29010000
[ 6.581750] NDCB2: 0x00000000
[ 6.581750] NDCB3: 0x00000000
[ 6.600735] marvell-nfc pxa3xx-nand:
[ 6.600735] NDCR: 0x9d079fff
[ 6.600735] NDCB0: 0x000d3000
[ 6.600735] NDCB1: 0x29010000
[ 6.600735] NDCB2: 0x00000000
[ 6.600735] NDCB3: 0x00000000
[ 6.619839] marvell-nfc pxa3xx-nand:
[ 6.619839] NDCR: 0xdd079fff
[ 6.619839] NDCB0: 0x000d3000
[ 6.619839] NDCB1: 0x29400000
[ 6.619839] NDCB2: 0x00000000
[ 6.619839] NDCB3: 0x00000000
[ 6.638902] marvell-nfc pxa3xx-nand:
[ 6.638902] NDCR: 0xdd079fff
[ 6.638902] NDCB0: 0x000d3000
[ 6.638902] NDCB1: 0x29410000
[ 6.638902] NDCB2: 0x00000000
[ 6.638902] NDCB3: 0x00000000
[ 6.657879] marvell-nfc pxa3xx-nand:
[ 6.657879] NDCR: 0x9d079fff
[ 6.657879] NDCB0: 0x000d3000
[ 6.657879] NDCB1: 0x29410000
[ 6.657879] NDCB2: 0x00000000
[ 6.657879] NDCB3: 0x00000000
[ 6.676983] marvell-nfc pxa3xx-nand:
[ 6.676983] NDCR: 0xdd079fff
[ 6.676983] NDCB0: 0x000d3000
[ 6.676983] NDCB1: 0x29800000
[ 6.676983] NDCB2: 0x00000000
[ 6.676983] NDCB3: 0x00000000
[ 6.696050] marvell-nfc pxa3xx-nand:
[ 6.696050] NDCR: 0xdd079fff
[ 6.696050] NDCB0: 0x000d3000
[ 6.696050] NDCB1: 0x29810000
[ 6.696050] NDCB2: 0x00000000
[ 6.696050] NDCB3: 0x00000000
[ 6.715033] marvell-nfc pxa3xx-nand:
[ 6.715033] NDCR: 0x9d079fff
[ 6.715033] NDCB0: 0x000d3000
[ 6.715033] NDCB1: 0x29810000
[ 6.715033] NDCB2: 0x00000000
[ 6.715033] NDCB3: 0x00000000
[ 6.734141] marvell-nfc pxa3xx-nand:
[ 6.734141] NDCR: 0xdd079fff
[ 6.734141] NDCB0: 0x000d3000
[ 6.734141] NDCB1: 0x29c00000
[ 6.734141] NDCB2: 0x00000000
[ 6.734141] NDCB3: 0x00000000
[ 6.753291] marvell-nfc pxa3xx-nand:
[ 6.753291] NDCR: 0xdd079fff
[ 6.753291] NDCB0: 0x000d3000
[ 6.753291] NDCB1: 0x29c10000
[ 6.753291] NDCB2: 0x00000000
[ 6.753291] NDCB3: 0x00000000
[ 6.772264] marvell-nfc pxa3xx-nand:
[ 6.772264] NDCR: 0x9d079fff
[ 6.772264] NDCB0: 0x000d3000
[ 6.772264] NDCB1: 0x29c10000
[ 6.772264] NDCB2: 0x00000000
[ 6.772264] NDCB3: 0x00000000
[ 6.791367] marvell-nfc pxa3xx-nand:
[ 6.791367] NDCR: 0xdd079fff
[ 6.791367] NDCB0: 0x000d3000
[ 6.791367] NDCB1: 0x2a000000
[ 6.791367] NDCB2: 0x00000000
[ 6.791367] NDCB3: 0x00000000
[ 6.810425] marvell-nfc pxa3xx-nand:
[ 6.810425] NDCR: 0xdd079fff
[ 6.810425] NDCB0: 0x000d3000
[ 6.810425] NDCB1: 0x2a010000
[ 6.810425] NDCB2: 0x00000000
[ 6.810425] NDCB3: 0x00000000
[ 6.829403] marvell-nfc pxa3xx-nand:
[ 6.829403] NDCR: 0x9d079fff
[ 6.829403] NDCB0: 0x000d3000
[ 6.829403] NDCB1: 0x2a010000
[ 6.829403] NDCB2: 0x00000000
[ 6.829403] NDCB3: 0x00000000
[ 6.848512] marvell-nfc pxa3xx-nand:
[ 6.848512] NDCR: 0xdd079fff
[ 6.848512] NDCB0: 0x000d3000
[ 6.848512] NDCB1: 0x2a400000
[ 6.848512] NDCB2: 0x00000000
[ 6.848512] NDCB3: 0x00000000
[ 6.867573] marvell-nfc pxa3xx-nand:
[ 6.867573] NDCR: 0xdd079fff
[ 6.867573] NDCB0: 0x000d3000
[ 6.867573] NDCB1: 0x2a410000
[ 6.867573] NDCB2: 0x00000000
[ 6.867573] NDCB3: 0x00000000
[ 6.886550] marvell-nfc pxa3xx-nand:
[ 6.886550] NDCR: 0x9d079fff
[ 6.886550] NDCB0: 0x000d3000
[ 6.886550] NDCB1: 0x2a410000
[ 6.886550] NDCB2: 0x00000000
[ 6.886550] NDCB3: 0x00000000
[ 6.905653] marvell-nfc pxa3xx-nand:
[ 6.905653] NDCR: 0xdd079fff
[ 6.905653] NDCB0: 0x000d3000
[ 6.905653] NDCB1: 0x2a800000
[ 6.905653] NDCB2: 0x00000000
[ 6.905653] NDCB3: 0x00000000
[ 6.924720] marvell-nfc pxa3xx-nand:
[ 6.924720] NDCR: 0xdd079fff
[ 6.924720] NDCB0: 0x000d3000
[ 6.924720] NDCB1: 0x2a810000
[ 6.924720] NDCB2: 0x00000000
[ 6.924720] NDCB3: 0x00000000
[ 6.943704] marvell-nfc pxa3xx-nand:
[ 6.943704] NDCR: 0x9d079fff
[ 6.943704] NDCB0: 0x000d3000
[ 6.943704] NDCB1: 0x2a810000
[ 6.943704] NDCB2: 0x00000000
[ 6.943704] NDCB3: 0x00000000
[ 6.962806] marvell-nfc pxa3xx-nand:
[ 6.962806] NDCR: 0xdd079fff
[ 6.962806] NDCB0: 0x000d3000
[ 6.962806] NDCB1: 0x2ac00000
[ 6.962806] NDCB2: 0x00000000
[ 6.962806] NDCB3: 0x00000000
[ 6.981868] marvell-nfc pxa3xx-nand:
[ 6.981868] NDCR: 0xdd079fff
[ 6.981868] NDCB0: 0x000d3000
[ 6.981868] NDCB1: 0x2ac10000
[ 6.981868] NDCB2: 0x00000000
[ 6.981868] NDCB3: 0x00000000
[ 7.000848] marvell-nfc pxa3xx-nand:
[ 7.000848] NDCR: 0x9d079fff
[ 7.000848] NDCB0: 0x000d3000
[ 7.000848] NDCB1: 0x2ac10000
[ 7.000848] NDCB2: 0x00000000
[ 7.000848] NDCB3: 0x00000000
[ 7.019966] marvell-nfc pxa3xx-nand:
[ 7.019966] NDCR: 0xdd079fff
[ 7.019966] NDCB0: 0x000d3000
[ 7.019966] NDCB1: 0x2b000000
[ 7.019966] NDCB2: 0x00000000
[ 7.019966] NDCB3: 0x00000000
[ 7.039028] marvell-nfc pxa3xx-nand:
[ 7.039028] NDCR: 0xdd079fff
[ 7.039028] NDCB0: 0x000d3000
[ 7.039028] NDCB1: 0x2b010000
[ 7.039028] NDCB2: 0x00000000
[ 7.039028] NDCB3: 0x00000000
[ 7.058002] marvell-nfc pxa3xx-nand:
[ 7.058002] NDCR: 0x9d079fff
[ 7.058002] NDCB0: 0x000d3000
[ 7.058002] NDCB1: 0x2b010000
[ 7.058002] NDCB2: 0x00000000
[ 7.058002] NDCB3: 0x00000000
[ 7.077109] marvell-nfc pxa3xx-nand:
[ 7.077109] NDCR: 0xdd079fff
[ 7.077109] NDCB0: 0x000d3000
[ 7.077109] NDCB1: 0x2b400000
[ 7.077109] NDCB2: 0x00000000
[ 7.077109] NDCB3: 0x00000000
[ 7.096173] marvell-nfc pxa3xx-nand:
[ 7.096173] NDCR: 0xdd079fff
[ 7.096173] NDCB0: 0x000d3000
[ 7.096173] NDCB1: 0x2b410000
[ 7.096173] NDCB2: 0x00000000
[ 7.096173] NDCB3: 0x00000000
[ 7.115153] marvell-nfc pxa3xx-nand:
[ 7.115153] NDCR: 0x9d079fff
[ 7.115153] NDCB0: 0x000d3000
[ 7.115153] NDCB1: 0x2b410000
[ 7.115153] NDCB2: 0x00000000
[ 7.115153] NDCB3: 0x00000000
[ 7.134255] marvell-nfc pxa3xx-nand:
[ 7.134255] NDCR: 0xdd079fff
[ 7.134255] NDCB0: 0x000d3000
[ 7.134255] NDCB1: 0x2b800000
[ 7.134255] NDCB2: 0x00000000
[ 7.134255] NDCB3: 0x00000000
[ 7.153307] marvell-nfc pxa3xx-nand:
[ 7.153307] NDCR: 0xdd079fff
[ 7.153307] NDCB0: 0x000d3000
[ 7.153307] NDCB1: 0x2b810000
[ 7.153307] NDCB2: 0x00000000
[ 7.153307] NDCB3: 0x00000000
[ 7.172279] marvell-nfc pxa3xx-nand:
[ 7.172279] NDCR: 0x9d079fff
[ 7.172279] NDCB0: 0x000d3000
[ 7.172279] NDCB1: 0x2b810000
[ 7.172279] NDCB2: 0x00000000
[ 7.172279] NDCB3: 0x00000000
[ 7.191385] marvell-nfc pxa3xx-nand:
[ 7.191385] NDCR: 0xdd079fff
[ 7.191385] NDCB0: 0x000d3000
[ 7.191385] NDCB1: 0x2bc00000
[ 7.191385] NDCB2: 0x00000000
[ 7.191385] NDCB3: 0x00000000
[ 7.210447] marvell-nfc pxa3xx-nand:
[ 7.210447] NDCR: 0xdd079fff
[ 7.210447] NDCB0: 0x000d3000
[ 7.210447] NDCB1: 0x2bc10000
[ 7.210447] NDCB2: 0x00000000
[ 7.210447] NDCB3: 0x00000000
[ 7.229426] marvell-nfc pxa3xx-nand:
[ 7.229426] NDCR: 0x9d079fff
[ 7.229426] NDCB0: 0x000d3000
[ 7.229426] NDCB1: 0x2bc10000
[ 7.229426] NDCB2: 0x00000000
[ 7.229426] NDCB3: 0x00000000
[ 7.248529] marvell-nfc pxa3xx-nand:
[ 7.248529] NDCR: 0xdd079fff
[ 7.248529] NDCB0: 0x000d3000
[ 7.248529] NDCB1: 0x2c000000
[ 7.248529] NDCB2: 0x00000000
[ 7.248529] NDCB3: 0x00000000
[ 7.267597] marvell-nfc pxa3xx-nand:
[ 7.267597] NDCR: 0xdd079fff
[ 7.267597] NDCB0: 0x000d3000
[ 7.267597] NDCB1: 0x2c010000
[ 7.267597] NDCB2: 0x00000000
[ 7.267597] NDCB3: 0x00000000
[ 7.286579] marvell-nfc pxa3xx-nand:
[ 7.286579] NDCR: 0x9d079fff
[ 7.286579] NDCB0: 0x000d3000
[ 7.286579] NDCB1: 0x2c010000
[ 7.286579] NDCB2: 0x00000000
[ 7.286579] NDCB3: 0x00000000
[ 7.305683] marvell-nfc pxa3xx-nand:
[ 7.305683] NDCR: 0xdd079fff
[ 7.305683] NDCB0: 0x000d3000
[ 7.305683] NDCB1: 0x2c400000
[ 7.305683] NDCB2: 0x00000000
[ 7.305683] NDCB3: 0x00000000
[ 7.324747] marvell-nfc pxa3xx-nand:
[ 7.324747] NDCR: 0xdd079fff
[ 7.324747] NDCB0: 0x000d3000
[ 7.324747] NDCB1: 0x2c410000
[ 7.324747] NDCB2: 0x00000000
[ 7.324747] NDCB3: 0x00000000
[ 7.343743] marvell-nfc pxa3xx-nand:
[ 7.343743] NDCR: 0x9d079fff
[ 7.343743] NDCB0: 0x000d3000
[ 7.343743] NDCB1: 0x2c410000
[ 7.343743] NDCB2: 0x00000000
[ 7.343743] NDCB3: 0x00000000
[ 7.362843] marvell-nfc pxa3xx-nand:
[ 7.362843] NDCR: 0xdd079fff
[ 7.362843] NDCB0: 0x000d3000
[ 7.362843] NDCB1: 0x2c800000
[ 7.362843] NDCB2: 0x00000000
[ 7.362843] NDCB3: 0x00000000
[ 7.381905] marvell-nfc pxa3xx-nand:
[ 7.381905] NDCR: 0xdd079fff
[ 7.381905] NDCB0: 0x000d3000
[ 7.381905] NDCB1: 0x2c810000
[ 7.381905] NDCB2: 0x00000000
[ 7.381905] NDCB3: 0x00000000
[ 7.400887] marvell-nfc pxa3xx-nand:
[ 7.400887] NDCR: 0x9d079fff
[ 7.400887] NDCB0: 0x000d3000
[ 7.400887] NDCB1: 0x2c810000
[ 7.400887] NDCB2: 0x00000000
[ 7.400887] NDCB3: 0x00000000
[ 7.420884] marvell-nfc pxa3xx-nand:
[ 7.420884] NDCR: 0xdd079fff
[ 7.420884] NDCB0: 0x000d3000
[ 7.420884] NDCB1: 0x50800000
[ 7.420884] NDCB2: 0x00000000
[ 7.420884] NDCB3: 0x00000000
[ 7.439944] marvell-nfc pxa3xx-nand:
[ 7.439944] NDCR: 0xdd079fff
[ 7.439944] NDCB0: 0x000d3000
[ 7.439944] NDCB1: 0x50810000
[ 7.439944] NDCB2: 0x00000000
[ 7.439944] NDCB3: 0x00000000
[ 7.458920] marvell-nfc pxa3xx-nand:
[ 7.458920] NDCR: 0x9d079fff
[ 7.458920] NDCB0: 0x000d3000
[ 7.458920] NDCB1: 0x50810000
[ 7.458920] NDCB2: 0x00000000
[ 7.458920] NDCB3: 0x00000000
[ 7.478025] marvell-nfc pxa3xx-nand:
[ 7.478025] NDCR: 0xdd079fff
[ 7.478025] NDCB0: 0x000d3000
[ 7.478025] NDCB1: 0x50c00000
[ 7.478025] NDCB2: 0x00000000
[ 7.478025] NDCB3: 0x00000000
[ 7.497089] marvell-nfc pxa3xx-nand:
[ 7.497089] NDCR: 0xdd079fff
[ 7.497089] NDCB0: 0x000d3000
[ 7.497089] NDCB1: 0x50c10000
[ 7.497089] NDCB2: 0x00000000
[ 7.497089] NDCB3: 0x00000000
[ 7.516067] marvell-nfc pxa3xx-nand:
[ 7.516067] NDCR: 0x9d079fff
[ 7.516067] NDCB0: 0x000d3000
[ 7.516067] NDCB1: 0x50c10000
[ 7.516067] NDCB2: 0x00000000
[ 7.516067] NDCB3: 0x00000000
[ 7.535172] marvell-nfc pxa3xx-nand:
[ 7.535172] NDCR: 0xdd079fff
[ 7.535172] NDCB0: 0x000d3000
[ 7.535172] NDCB1: 0x51000000
[ 7.535172] NDCB2: 0x00000000
[ 7.535172] NDCB3: 0x00000000
[ 7.554233] marvell-nfc pxa3xx-nand:
[ 7.554233] NDCR: 0xdd079fff
[ 7.554233] NDCB0: 0x000d3000
[ 7.554233] NDCB1: 0x51010000
[ 7.554233] NDCB2: 0x00000000
[ 7.554233] NDCB3: 0x00000000
[ 7.573238] marvell-nfc pxa3xx-nand:
[ 7.573238] NDCR: 0x9d079fff
[ 7.573238] NDCB0: 0x000d3000
[ 7.573238] NDCB1: 0x51010000
[ 7.573238] NDCB2: 0x00000000
[ 7.573238] NDCB3: 0x00000000
[ 7.592334] marvell-nfc pxa3xx-nand:
[ 7.592334] NDCR: 0xdd079fff
[ 7.592334] NDCB0: 0x000d3000
[ 7.592334] NDCB1: 0x51400000
[ 7.592334] NDCB2: 0x00000000
[ 7.592334] NDCB3: 0x00000000
[ 7.611401] marvell-nfc pxa3xx-nand:
[ 7.611401] NDCR: 0xdd079fff
[ 7.611401] NDCB0: 0x000d3000
[ 7.611401] NDCB1: 0x51410000
[ 7.611401] NDCB2: 0x00000000
[ 7.611401] NDCB3: 0x00000000
[ 7.630384] marvell-nfc pxa3xx-nand:
[ 7.630384] NDCR: 0x9d079fff
[ 7.630384] NDCB0: 0x000d3000
[ 7.630384] NDCB1: 0x51410000
[ 7.630384] NDCB2: 0x00000000
[ 7.630384] NDCB3: 0x00000000
[ 7.649492] marvell-nfc pxa3xx-nand:
[ 7.649492] NDCR: 0xdd079fff
[ 7.649492] NDCB0: 0x000d3000
[ 7.649492] NDCB1: 0x51800000
[ 7.649492] NDCB2: 0x00000000
[ 7.649492] NDCB3: 0x00000000
[ 7.668554] marvell-nfc pxa3xx-nand:
[ 7.668554] NDCR: 0xdd079fff
[ 7.668554] NDCB0: 0x000d3000
[ 7.668554] NDCB1: 0x51810000
[ 7.668554] NDCB2: 0x00000000
[ 7.668554] NDCB3: 0x00000000
[ 7.687527] marvell-nfc pxa3xx-nand:
[ 7.687527] NDCR: 0x9d079fff
[ 7.687527] NDCB0: 0x000d3000
[ 7.687527] NDCB1: 0x51810000
[ 7.687527] NDCB2: 0x00000000
[ 7.687527] NDCB3: 0x00000000
[ 7.706637] marvell-nfc pxa3xx-nand:
[ 7.706637] NDCR: 0xdd079fff
[ 7.706637] NDCB0: 0x000d3000
[ 7.706637] NDCB1: 0x51c00000
[ 7.706637] NDCB2: 0x00000000
[ 7.706637] NDCB3: 0x00000000
[ 7.725697] marvell-nfc pxa3xx-nand:
[ 7.725697] NDCR: 0xdd079fff
[ 7.725697] NDCB0: 0x000d3000
[ 7.725697] NDCB1: 0x51c10000
[ 7.725697] NDCB2: 0x00000000
[ 7.725697] NDCB3: 0x00000000
[ 7.744674] marvell-nfc pxa3xx-nand:
[ 7.744674] NDCR: 0x9d079fff
[ 7.744674] NDCB0: 0x000d3000
[ 7.744674] NDCB1: 0x51c10000
[ 7.744674] NDCB2: 0x00000000
[ 7.744674] NDCB3: 0x00000000
[ 7.763781] marvell-nfc pxa3xx-nand:
[ 7.763781] NDCR: 0xdd079fff
[ 7.763781] NDCB0: 0x000d3000
[ 7.763781] NDCB1: 0x52000000
[ 7.763781] NDCB2: 0x00000000
[ 7.763781] NDCB3: 0x00000000
[ 7.782838] marvell-nfc pxa3xx-nand:
[ 7.782838] NDCR: 0xdd079fff
[ 7.782838] NDCB0: 0x000d3000
[ 7.782838] NDCB1: 0x52010000
[ 7.782838] NDCB2: 0x00000000
[ 7.782838] NDCB3: 0x00000000
[ 7.801814] marvell-nfc pxa3xx-nand:
[ 7.801814] NDCR: 0x9d079fff
[ 7.801814] NDCB0: 0x000d3000
[ 7.801814] NDCB1: 0x52010000
[ 7.801814] NDCB2: 0x00000000
[ 7.801814] NDCB3: 0x00000000
[ 7.820919] marvell-nfc pxa3xx-nand:
[ 7.820919] NDCR: 0xdd079fff
[ 7.820919] NDCB0: 0x000d3000
[ 7.820919] NDCB1: 0x52400000
[ 7.820919] NDCB2: 0x00000000
[ 7.820919] NDCB3: 0x00000000
[ 7.839984] marvell-nfc pxa3xx-nand:
[ 7.839984] NDCR: 0xdd079fff
[ 7.839984] NDCB0: 0x000d3000
[ 7.839984] NDCB1: 0x52410000
[ 7.839984] NDCB2: 0x00000000
[ 7.839984] NDCB3: 0x00000000
[ 7.858968] marvell-nfc pxa3xx-nand:
[ 7.858968] NDCR: 0x9d079fff
[ 7.858968] NDCB0: 0x000d3000
[ 7.858968] NDCB1: 0x52410000
[ 7.858968] NDCB2: 0x00000000
[ 7.858968] NDCB3: 0x00000000
[ 7.878070] marvell-nfc pxa3xx-nand:
[ 7.878070] NDCR: 0xdd079fff
[ 7.878070] NDCB0: 0x000d3000
[ 7.878070] NDCB1: 0x52800000
[ 7.878070] NDCB2: 0x00000000
[ 7.878070] NDCB3: 0x00000000
[ 7.897127] marvell-nfc pxa3xx-nand:
[ 7.897127] NDCR: 0xdd079fff
[ 7.897127] NDCB0: 0x000d3000
[ 7.897127] NDCB1: 0x52810000
[ 7.897127] NDCB2: 0x00000000
[ 7.897127] NDCB3: 0x00000000
[ 7.916104] marvell-nfc pxa3xx-nand:
[ 7.916104] NDCR: 0x9d079fff
[ 7.916104] NDCB0: 0x000d3000
[ 7.916104] NDCB1: 0x52810000
[ 7.916104] NDCB2: 0x00000000
[ 7.916104] NDCB3: 0x00000000
[ 7.935231] marvell-nfc pxa3xx-nand:
[ 7.935231] NDCR: 0xdd079fff
[ 7.935231] NDCB0: 0x000d3000
[ 7.935231] NDCB1: 0x52c00000
[ 7.935231] NDCB2: 0x00000000
[ 7.935231] NDCB3: 0x00000000
[ 7.954292] marvell-nfc pxa3xx-nand:
[ 7.954292] NDCR: 0xdd079fff
[ 7.954292] NDCB0: 0x000d3000
[ 7.954292] NDCB1: 0x52c10000
[ 7.954292] NDCB2: 0x00000000
[ 7.954292] NDCB3: 0x00000000
[ 7.973328] marvell-nfc pxa3xx-nand:
[ 7.973328] NDCR: 0x9d079fff
[ 7.973328] NDCB0: 0x000d3000
[ 7.973328] NDCB1: 0x52c10000
[ 7.973328] NDCB2: 0x00000000
[ 7.973328] NDCB3: 0x00000000
[ 7.992424] marvell-nfc pxa3xx-nand:
[ 7.992424] NDCR: 0xdd079fff
[ 7.992424] NDCB0: 0x000d3000
[ 7.992424] NDCB1: 0x53000000
[ 7.992424] NDCB2: 0x00000000
[ 7.992424] NDCB3: 0x00000000
[ 8.011485] marvell-nfc pxa3xx-nand:
[ 8.011485] NDCR: 0xdd079fff
[ 8.011485] NDCB0: 0x000d3000
[ 8.011485] NDCB1: 0x53010000
[ 8.011485] NDCB2: 0x00000000
[ 8.011485] NDCB3: 0x00000000
[ 8.030479] marvell-nfc pxa3xx-nand:
[ 8.030479] NDCR: 0x9d079fff
[ 8.030479] NDCB0: 0x000d3000
[ 8.030479] NDCB1: 0x53010000
[ 8.030479] NDCB2: 0x00000000
[ 8.030479] NDCB3: 0x00000000
[ 8.049579] marvell-nfc pxa3xx-nand:
[ 8.049579] NDCR: 0xdd079fff
[ 8.049579] NDCB0: 0x000d3000
[ 8.049579] NDCB1: 0x53400000
[ 8.049579] NDCB2: 0x00000000
[ 8.049579] NDCB3: 0x00000000
[ 8.068643] marvell-nfc pxa3xx-nand:
[ 8.068643] NDCR: 0xdd079fff
[ 8.068643] NDCB0: 0x000d3000
[ 8.068643] NDCB1: 0x53410000
[ 8.068643] NDCB2: 0x00000000
[ 8.068643] NDCB3: 0x00000000
[ 8.087618] marvell-nfc pxa3xx-nand:
[ 8.087618] NDCR: 0x9d079fff
[ 8.087618] NDCB0: 0x000d3000
[ 8.087618] NDCB1: 0x53410000
[ 8.087618] NDCB2: 0x00000000
[ 8.087618] NDCB3: 0x00000000
[ 8.107355] marvell-nfc pxa3xx-nand:
[ 8.107355] NDCR: 0xdd079fff
[ 8.107355] NDCB0: 0x000d3000
[ 8.107355] NDCB1: 0x53800000
[ 8.107355] NDCB2: 0x00000000
[ 8.107355] NDCB3: 0x00000000
[ 8.126458] marvell-nfc pxa3xx-nand:
[ 8.126458] NDCR: 0xdd079fff
[ 8.126458] NDCB0: 0x000d3000
[ 8.126458] NDCB1: 0x53810000
[ 8.126458] NDCB2: 0x00000000
[ 8.126458] NDCB3: 0x00000000
[ 8.145438] marvell-nfc pxa3xx-nand:
[ 8.145438] NDCR: 0x9d079fff
[ 8.145438] NDCB0: 0x000d3000
[ 8.145438] NDCB1: 0x53810000
[ 8.145438] NDCB2: 0x00000000
[ 8.145438] NDCB3: 0x00000000
[ 8.164543] marvell-nfc pxa3xx-nand:
[ 8.164543] NDCR: 0xdd079fff
[ 8.164543] NDCB0: 0x000d3000
[ 8.164543] NDCB1: 0x53c00000
[ 8.164543] NDCB2: 0x00000000
[ 8.164543] NDCB3: 0x00000000
[ 8.183607] marvell-nfc pxa3xx-nand:
[ 8.183607] NDCR: 0xdd079fff
[ 8.183607] NDCB0: 0x000d3000
[ 8.183607] NDCB1: 0x53c10000
[ 8.183607] NDCB2: 0x00000000
[ 8.183607] NDCB3: 0x00000000
[ 8.202574] marvell-nfc pxa3xx-nand:
[ 8.202574] NDCR: 0x9d079fff
[ 8.202574] NDCB0: 0x000d3000
[ 8.202574] NDCB1: 0x53c10000
[ 8.202574] NDCB2: 0x00000000
[ 8.202574] NDCB3: 0x00000000
[ 8.221680] marvell-nfc pxa3xx-nand:
[ 8.221680] NDCR: 0xdd079fff
[ 8.221680] NDCB0: 0x000d3000
[ 8.221680] NDCB1: 0x54000000
[ 8.221680] NDCB2: 0x00000000
[ 8.221680] NDCB3: 0x00000000
[ 8.240741] marvell-nfc pxa3xx-nand:
[ 8.240741] NDCR: 0xdd079fff
[ 8.240741] NDCB0: 0x000d3000
[ 8.240741] NDCB1: 0x54010000
[ 8.240741] NDCB2: 0x00000000
[ 8.240741] NDCB3: 0x00000000
[ 8.259723] marvell-nfc pxa3xx-nand:
[ 8.259723] NDCR: 0x9d079fff
[ 8.259723] NDCB0: 0x000d3000
[ 8.259723] NDCB1: 0x54010000
[ 8.259723] NDCB2: 0x00000000
[ 8.259723] NDCB3: 0x00000000
[ 8.278825] marvell-nfc pxa3xx-nand:
[ 8.278825] NDCR: 0xdd079fff
[ 8.278825] NDCB0: 0x000d3000
[ 8.278825] NDCB1: 0x54400000
[ 8.278825] NDCB2: 0x00000000
[ 8.278825] NDCB3: 0x00000000
[ 8.297889] marvell-nfc pxa3xx-nand:
[ 8.297889] NDCR: 0xdd079fff
[ 8.297889] NDCB0: 0x000d3000
[ 8.297889] NDCB1: 0x54410000
[ 8.297889] NDCB2: 0x00000000
[ 8.297889] NDCB3: 0x00000000
[ 8.316863] marvell-nfc pxa3xx-nand:
[ 8.316863] NDCR: 0x9d079fff
[ 8.316863] NDCB0: 0x000d3000
[ 8.316863] NDCB1: 0x54410000
[ 8.316863] NDCB2: 0x00000000
[ 8.316863] NDCB3: 0x00000000
[ 8.335976] marvell-nfc pxa3xx-nand:
[ 8.335976] NDCR: 0xdd079fff
[ 8.335976] NDCB0: 0x000d3000
[ 8.335976] NDCB1: 0x55000000
[ 8.335976] NDCB2: 0x00000000
[ 8.335976] NDCB3: 0x00000000
[ 8.355035] marvell-nfc pxa3xx-nand:
[ 8.355035] NDCR: 0xdd079fff
[ 8.355035] NDCB0: 0x000d3000
[ 8.355035] NDCB1: 0x55010000
[ 8.355035] NDCB2: 0x00000000
[ 8.355035] NDCB3: 0x00000000
[ 8.374007] marvell-nfc pxa3xx-nand:
[ 8.374007] NDCR: 0x9d079fff
[ 8.374007] NDCB0: 0x000d3000
[ 8.374007] NDCB1: 0x55010000
[ 8.374007] NDCB2: 0x00000000
[ 8.374007] NDCB3: 0x00000000
[ 8.393202] marvell-nfc pxa3xx-nand:
[ 8.393202] NDCR: 0xdd079fff
[ 8.393202] NDCB0: 0x000d3000
[ 8.393202] NDCB1: 0x55400000
[ 8.393202] NDCB2: 0x00000000
[ 8.393202] NDCB3: 0x00000000
[ 8.412235] marvell-nfc pxa3xx-nand:
[ 8.412235] NDCR: 0xdd079fff
[ 8.412235] NDCB0: 0x000d3000
[ 8.412235] NDCB1: 0x55410000
[ 8.412235] NDCB2: 0x00000000
[ 8.412235] NDCB3: 0x00000000
[ 8.431217] marvell-nfc pxa3xx-nand:
[ 8.431217] NDCR: 0x9d079fff
[ 8.431217] NDCB0: 0x000d3000
[ 8.431217] NDCB1: 0x55410000
[ 8.431217] NDCB2: 0x00000000
[ 8.431217] NDCB3: 0x00000000
[ 8.450325] marvell-nfc pxa3xx-nand:
[ 8.450325] NDCR: 0xdd079fff
[ 8.450325] NDCB0: 0x000d3000
[ 8.450325] NDCB1: 0x55800000
[ 8.450325] NDCB2: 0x00000000
[ 8.450325] NDCB3: 0x00000000
[ 8.469388] marvell-nfc pxa3xx-nand:
[ 8.469388] NDCR: 0xdd079fff
[ 8.469388] NDCB0: 0x000d3000
[ 8.469388] NDCB1: 0x55810000
[ 8.469388] NDCB2: 0x00000000
[ 8.469388] NDCB3: 0x00000000
[ 8.488366] marvell-nfc pxa3xx-nand:
[ 8.488366] NDCR: 0x9d079fff
[ 8.488366] NDCB0: 0x000d3000
[ 8.488366] NDCB1: 0x55810000
[ 8.488366] NDCB2: 0x00000000
[ 8.488366] NDCB3: 0x00000000
[ 8.507471] marvell-nfc pxa3xx-nand:
[ 8.507471] NDCR: 0xdd079fff
[ 8.507471] NDCB0: 0x000d3000
[ 8.507471] NDCB1: 0x55c00000
[ 8.507471] NDCB2: 0x00000000
[ 8.507471] NDCB3: 0x00000000
[ 8.526556] marvell-nfc pxa3xx-nand:
[ 8.526556] NDCR: 0xdd079fff
[ 8.526556] NDCB0: 0x000d3000
[ 8.526556] NDCB1: 0x55c10000
[ 8.526556] NDCB2: 0x00000000
[ 8.526556] NDCB3: 0x00000000
[ 8.545537] marvell-nfc pxa3xx-nand:
[ 8.545537] NDCR: 0x9d079fff
[ 8.545537] NDCB0: 0x000d3000
[ 8.545537] NDCB1: 0x55c10000
[ 8.545537] NDCB2: 0x00000000
[ 8.545537] NDCB3: 0x00000000
[ 8.564641] marvell-nfc pxa3xx-nand:
[ 8.564641] NDCR: 0xdd079fff
[ 8.564641] NDCB0: 0x000d3000
[ 8.564641] NDCB1: 0x56000000
[ 8.564641] NDCB2: 0x00000000
[ 8.564641] NDCB3: 0x00000000
[ 8.583703] marvell-nfc pxa3xx-nand:
[ 8.583703] NDCR: 0xdd079fff
[ 8.583703] NDCB0: 0x000d3000
[ 8.583703] NDCB1: 0x56010000
[ 8.583703] NDCB2: 0x00000000
[ 8.583703] NDCB3: 0x00000000
[ 8.602671] marvell-nfc pxa3xx-nand:
[ 8.602671] NDCR: 0x9d079fff
[ 8.602671] NDCB0: 0x000d3000
[ 8.602671] NDCB1: 0x56010000
[ 8.602671] NDCB2: 0x00000000
[ 8.602671] NDCB3: 0x00000000
[ 8.621771] marvell-nfc pxa3xx-nand:
[ 8.621771] NDCR: 0xdd079fff
[ 8.621771] NDCB0: 0x000d3000
[ 8.621771] NDCB1: 0x56400000
[ 8.621771] NDCB2: 0x00000000
[ 8.621771] NDCB3: 0x00000000
[ 8.640836] marvell-nfc pxa3xx-nand:
[ 8.640836] NDCR: 0xdd079fff
[ 8.640836] NDCB0: 0x000d3000
[ 8.640836] NDCB1: 0x56410000
[ 8.640836] NDCB2: 0x00000000
[ 8.640836] NDCB3: 0x00000000
[ 8.659821] marvell-nfc pxa3xx-nand:
[ 8.659821] NDCR: 0x9d079fff
[ 8.659821] NDCB0: 0x000d3000
[ 8.659821] NDCB1: 0x56410000
[ 8.659821] NDCB2: 0x00000000
[ 8.659821] NDCB3: 0x00000000
[ 8.678923] marvell-nfc pxa3xx-nand:
[ 8.678923] NDCR: 0xdd079fff
[ 8.678923] NDCB0: 0x000d3000
[ 8.678923] NDCB1: 0x56800000
[ 8.678923] NDCB2: 0x00000000
[ 8.678923] NDCB3: 0x00000000
[ 8.697987] marvell-nfc pxa3xx-nand:
[ 8.697987] NDCR: 0xdd079fff
[ 8.697987] NDCB0: 0x000d3000
[ 8.697987] NDCB1: 0x56810000
[ 8.697987] NDCB2: 0x00000000
[ 8.697987] NDCB3: 0x00000000
[ 8.716967] marvell-nfc pxa3xx-nand:
[ 8.716967] NDCR: 0x9d079fff
[ 8.716967] NDCB0: 0x000d3000
[ 8.716967] NDCB1: 0x56810000
[ 8.716967] NDCB2: 0x00000000
[ 8.716967] NDCB3: 0x00000000
[ 8.736068] marvell-nfc pxa3xx-nand:
[ 8.736068] NDCR: 0xdd079fff
[ 8.736068] NDCB0: 0x000d3000
[ 8.736068] NDCB1: 0x56c00000
[ 8.736068] NDCB2: 0x00000000
[ 8.736068] NDCB3: 0x00000000
[ 8.755122] marvell-nfc pxa3xx-nand:
[ 8.755122] NDCR: 0xdd079fff
[ 8.755122] NDCB0: 0x000d3000
[ 8.755122] NDCB1: 0x56c10000
[ 8.755122] NDCB2: 0x00000000
[ 8.755122] NDCB3: 0x00000000
[ 8.774101] marvell-nfc pxa3xx-nand:
[ 8.774101] NDCR: 0x9d079fff
[ 8.774101] NDCB0: 0x000d3000
[ 8.774101] NDCB1: 0x56c10000
[ 8.774101] NDCB2: 0x00000000
[ 8.774101] NDCB3: 0x00000000
[ 8.793417] marvell-nfc pxa3xx-nand:
[ 8.793417] NDCR: 0xdd079fff
[ 8.793417] NDCB0: 0x000d3000
[ 8.793417] NDCB1: 0x57000000
[ 8.793417] NDCB2: 0x00000000
[ 8.793417] NDCB3: 0x00000000
[ 8.812493] marvell-nfc pxa3xx-nand:
[ 8.812493] NDCR: 0xdd079fff
[ 8.812493] NDCB0: 0x000d3000
[ 8.812493] NDCB1: 0x57010000
[ 8.812493] NDCB2: 0x00000000
[ 8.812493] NDCB3: 0x00000000
[ 8.831475] marvell-nfc pxa3xx-nand:
[ 8.831475] NDCR: 0x9d079fff
[ 8.831475] NDCB0: 0x000d3000
[ 8.831475] NDCB1: 0x57010000
[ 8.831475] NDCB2: 0x00000000
[ 8.831475] NDCB3: 0x00000000
[ 8.850578] marvell-nfc pxa3xx-nand:
[ 8.850578] NDCR: 0xdd079fff
[ 8.850578] NDCB0: 0x000d3000
[ 8.850578] NDCB1: 0x57400000
[ 8.850578] NDCB2: 0x00000000
[ 8.850578] NDCB3: 0x00000000
[ 8.869639] marvell-nfc pxa3xx-nand:
[ 8.869639] NDCR: 0xdd079fff
[ 8.869639] NDCB0: 0x000d3000
[ 8.869639] NDCB1: 0x57410000
[ 8.869639] NDCB2: 0x00000000
[ 8.869639] NDCB3: 0x00000000
[ 8.888614] marvell-nfc pxa3xx-nand:
[ 8.888614] NDCR: 0x9d079fff
[ 8.888614] NDCB0: 0x000d3000
[ 8.888614] NDCB1: 0x57410000
[ 8.888614] NDCB2: 0x00000000
[ 8.888614] NDCB3: 0x00000000
[ 8.907721] marvell-nfc pxa3xx-nand:
[ 8.907721] NDCR: 0xdd079fff
[ 8.907721] NDCB0: 0x000d3000
[ 8.907721] NDCB1: 0x57c00000
[ 8.907721] NDCB2: 0x00000000
[ 8.907721] NDCB3: 0x00000000
[ 8.926778] marvell-nfc pxa3xx-nand:
[ 8.926778] NDCR: 0xdd079fff
[ 8.926778] NDCB0: 0x000d3000
[ 8.926778] NDCB1: 0x57c10000
[ 8.926778] NDCB2: 0x00000000
[ 8.926778] NDCB3: 0x00000000
[ 8.945755] marvell-nfc pxa3xx-nand:
[ 8.945755] NDCR: 0x9d079fff
[ 8.945755] NDCB0: 0x000d3000
[ 8.945755] NDCB1: 0x57c10000
[ 8.945755] NDCB2: 0x00000000
[ 8.945755] NDCB3: 0x00000000
[ 8.964856] marvell-nfc pxa3xx-nand:
[ 8.964856] NDCR: 0xdd079fff
[ 8.964856] NDCB0: 0x000d3000
[ 8.964856] NDCB1: 0x58000000
[ 8.964856] NDCB2: 0x00000000
[ 8.964856] NDCB3: 0x00000000
[ 8.983915] marvell-nfc pxa3xx-nand:
[ 8.983915] NDCR: 0xdd079fff
[ 8.983915] NDCB0: 0x000d3000
[ 8.983915] NDCB1: 0x58010000
[ 8.983915] NDCB2: 0x00000000
[ 8.983915] NDCB3: 0x00000000
[ 9.002886] marvell-nfc pxa3xx-nand:
[ 9.002886] NDCR: 0x9d079fff
[ 9.002886] NDCB0: 0x000d3000
[ 9.002886] NDCB1: 0x58010000
[ 9.002886] NDCB2: 0x00000000
[ 9.002886] NDCB3: 0x00000000
[ 9.022075] marvell-nfc pxa3xx-nand:
[ 9.022075] NDCR: 0xdd079fff
[ 9.022075] NDCB0: 0x000d3000
[ 9.022075] NDCB1: 0x58400000
[ 9.022075] NDCB2: 0x00000000
[ 9.022075] NDCB3: 0x00000000
[ 9.041141] marvell-nfc pxa3xx-nand:
[ 9.041141] NDCR: 0xdd079fff
[ 9.041141] NDCB0: 0x000d3000
[ 9.041141] NDCB1: 0x58410000
[ 9.041141] NDCB2: 0x00000000
[ 9.041141] NDCB3: 0x00000000
[ 9.060123] marvell-nfc pxa3xx-nand:
[ 9.060123] NDCR: 0x9d079fff
[ 9.060123] NDCB0: 0x000d3000
[ 9.060123] NDCB1: 0x58410000
[ 9.060123] NDCB2: 0x00000000
[ 9.060123] NDCB3: 0x00000000
[ 9.079435] ubi0: scanning is finished
[ 9.083567] ubi0 error: ubi_read_volume_table: the layout volume was not found
[ 9.090953] ubi0 error: ubi_attach_mtd_dev: failed to attach mtd5, error -22
[ 9.098457] UBI error: cannot attach mtd5
[ 9.103950] pxa-rtc pxa-rtc: setting system clock to 2000-01-01 00:00:34 UTC (946684834)
[ 9.187568] smc91x smc91x.0 eth0: link down
[ 11.136140] smc91x smc91x.0 eth0: link up, 100Mbps, full-duplex, lpa 0xCDE1
[ 11.193199] IP-Config: Complete:
[ 11.196554] device=eth0, hwaddr=00:0e:0c:a7:26:f7, ipaddr=192.168.1.232, mask=255.255.255.0, gw=255.255.255.255
[ 11.207229] host=192.168.1.232, domain=, nis-domain=(none)
[ 11.213278] bootserver=192.168.1.5, rootserver=192.168.1.5, rootpath=
[ 11.221532] ALSA device list:
[ 11.224983] #0: Zylonite
[ 11.250472] Freeing unused kernel memory: 2396K
[ 11.255419] This architecture does not have kernel memory protection.
Starting logging: OK
Loading all the available modules: modprobe: module smc91x not found in modules.dep
modprobe: module soundcore not found in modules.dep
modprobe: module snd not found in modules.dep
modprobe: module snd-pcm not found in modules.dep
modprobe: module fat not found in modules.dep
modprobe: module vfat not found in modules.dep
modprobe: module nfs not found in modules.dep
modprobe: module nls_cp437 not found in modules.dep
modprobe: module nls_cp850 not found in modules.dep
modprobe: module nls_ascii not found in modules.dep
modprobe: module nls_utf8 not found in modules.dep
modprobe: module fixed not found in modules.dep
modprobe: module pwm-pxa not found in modules.dep
modprobe: module cpufreq_conservative not found in modules.dep
modprobe: module cpufreq_powersave not found in modules.dep
modprobe: module cpufreq-dt not found in modules.dep
modprobe: module btusb not found in modules.dep
modprobe: module i2c-dev not found in modules.dep
modprobe: module ubi not found in modules.dep
modprobe: module mt_blkdevs not found in modules.dep
modprobe: module pxa3xx_nand not found in modules.dep
modprobe: module mtdblock not found in modules.dep
modprobe: module ofpart not found in modules.dep
modprobe: module map_rom not found in modules.dep
modprobe: module jedec_probe not found in modules.dep
modprobe: module cmdlinepart not found in modules.dep
modprobe: module redboot not found in modules.dep
modprobe: module loop not found in modules.dep
modprobe: module leds-gpio not found in modules.dep
modprobe: module jedec-class not found in modules.dep
modprobe: module pxa not found in modules.dep
modprobe: module evdev not found in modules.dep
modprobe: module soc_common not found in modules.dep
modprobe: module pwm_bl not found in modules.dep
modprobe: module fbcon not found in modules.dep
modprobe: module rtc-pxa not found in modules.dep
modprobe: module rtc-sa1100 not found in modules.dep
modprobe: module smc91x not found in modules.dep
modprobe: module pda_power not found in modules.dep
modprobe: module fixed not found in modules.dep
KO
OK
Changing smcs91x MAC address to 08:00:3e:26:0a:5b: ifconfig: SIOCSIFHWADDR: Device or resource busy
KO
OK
Initializing random number generator... done.
Starting network...
ip: RTNETLINK answers: File exists
udhcpc (v1.24.1) started
Sending discover...
Sending select for 192.168.1.232...
Lease of 192.168.1.232 obtained, lease time 86400
deleting routers
adding dns 192.168.1.1
Starting dropbear sshd: OK
Welcome to Buildroot
zylonite login:
^ permalink raw reply
* [PATCH v3 00/22] Verbatim device names and devm_nvmem_(un)register()
From: Andrey Smirnov @ 2018-01-03 20:00 UTC (permalink / raw)
To: linux-arm-kernel
Srinivas, all:
This patchset contains various small changes that I recently made to
NVMEM, more specifically:
- Patches 1 and 3 are two changes I am hoping are acceptable upstream
- Patches 4 to 15 are a follow up to patch 2
- Patches 16 to 22 are just trivial fixups and I am more than happy
to drop them if they seem to add more pointless churn rather then
value.
Feedback is appreciated!
Thanks,
Andrey Smirnov
Changes since [v2]:
- Added a patch with kerenl doc for struct nvmem_config as a
prerequsite for patch #2
- Documented behaviour of nvmem_register() when id is set to -1
- Added kernel doc for devm_nvmem_(un)register()
Changes since [v1]:
- Fixed a build break detected by kbuild test robot
- Added a patch to unconditionally enable COMPILE_TEST for meson-efuse
- Dropped Joachim Eastwood from CC list due to bouncing e-mail
[v2] lkml.kernel.org/r/20180101232310.30420-1-andrew.smirnov at gmail.com
[v1] lkml.kernel.org/r/20171227225956.14442-1-andrew.smirnov at gmail.com
Andrey Smirnov (22):
nvmem: Document struct nvmem_config
nvmem: core: Allow specifying device name verbatim
nvmem: Introduce devm_nvmem_(un)register()
nvmem: vf610-ocotp: Convert to use devm_nvmem_register()
nvmem: imx-ocotp: Convert to use devm_nvmem_register()
nvmem: uniphier-efuse: Convert to use devm_nvmem_register()
nvmem: snvs_lgpr: Convert to use devm_nvmem_register()
nvmem: rockchip-efuse: Convert to use devm_nvmem_register()
nvmem: qfprom: Convert to use devm_nvmem_register()
nvmem: mtk-efuse: Convert to use devm_nvmem_register()
nvmem: meson-mx-efuse: Convert to use devm_nvmem_register()
nvmem: meson-efuse: Convert to use devm_nvmem_register()
nvmem: lpc18xx_otp: Convert to use devm_nvmem_register()
nvmem: imx-iim: Convert to use devm_nvmem_register()
nvmem: bcm-ocotp: Convert to use devm_nvmem_register()
nvmem: meson-efuse: Do no gate COMPILE_TEST with MESON_SM
nvmem: snvs_lpgpr: Convert commas to semicolons
nvmem: rockchip-efuse: Make use of of_device_get_match_data()
nvmem: vf610-ocotp: Do not use "&pdev->dev" explicitly
nvmem: rockchip-efuse: Do not use "&pdev->dev" explicitly
nvmem: imx-iim: Do not use "&pdev->dev" explicitly
nvmem: bcm-ocotp: Do not use "&pdev->dev" explicitly
drivers/nvmem/Kconfig | 2 +-
drivers/nvmem/bcm-ocotp.c | 15 ++--------
drivers/nvmem/core.c | 68 ++++++++++++++++++++++++++++++++++++++++--
drivers/nvmem/imx-iim.c | 14 ++-------
drivers/nvmem/imx-ocotp.c | 12 +-------
drivers/nvmem/lpc18xx_otp.c | 12 +-------
drivers/nvmem/meson-efuse.c | 12 +-------
drivers/nvmem/meson-mx-efuse.c | 12 +-------
drivers/nvmem/mtk-efuse.c | 12 +-------
drivers/nvmem/qfprom.c | 12 +-------
drivers/nvmem/rockchip-efuse.c | 28 ++++++-----------
drivers/nvmem/snvs_lpgpr.c | 26 +++++-----------
drivers/nvmem/uniphier-efuse.c | 12 +-------
drivers/nvmem/vf610-ocotp.c | 15 ++--------
include/linux/nvmem-provider.h | 42 ++++++++++++++++++++++++++
15 files changed, 138 insertions(+), 156 deletions(-)
--
2.14.3
^ permalink raw reply
* [PATCH v3 01/22] nvmem: Document struct nvmem_config
From: Andrey Smirnov @ 2018-01-03 20:00 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20180103200114.23922-1-andrew.smirnov@gmail.com>
Add a simple description of struct nvmem_config and its fields.
Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Heiko Stuebner <heiko@sntech.de>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Carlo Caione <carlo@caione.org>
Cc: Kevin Hilman <khilman@baylibre.com>
Cc: Matthias Brugger <matthias.bgg@gmail.com>
Cc: cphealy at gmail.com
Cc: linux-kernel at vger.kernel.org
Cc: linux-mediatek at lists.infradead.org
Cc: linux-rockchip at lists.infradead.org
Cc: linux-amlogic at lists.infradead.org
Cc: linux-arm-kernel at lists.infradead.org
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
---
include/linux/nvmem-provider.h | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/include/linux/nvmem-provider.h b/include/linux/nvmem-provider.h
index 497706f5adca..27e599222ec1 100644
--- a/include/linux/nvmem-provider.h
+++ b/include/linux/nvmem-provider.h
@@ -22,6 +22,28 @@ typedef int (*nvmem_reg_read_t)(void *priv, unsigned int offset,
typedef int (*nvmem_reg_write_t)(void *priv, unsigned int offset,
void *val, size_t bytes);
+/**
+ * struct nvmem_config - NVMEM device configuration
+ *
+ * @dev: Parent device.
+ * @name: Optional name.
+ * @id: Optional device ID used in full name. Ignored if name is NULL.
+ * @owner: Pointer to exporter module. Used for refcounting.
+ * @cells: Optional array of pre-defined NVMEM cells.
+ * @ncells: Number of elements in cells.
+ * @read_only: Device is read-only.
+ * @root_only: Device is accessibly to root only.
+ * @reg_read: Callback to read data.
+ * @reg_write: Callback to write data.
+ * @size: Device size.
+ * @word_size: Minimum read/write access granularity.
+ * @stride: Minimum read/write access stide.
+ * @priv: User context passed to read/write callbacks.
+ *
+ * Note: A default "nvmem<id>" name will be assigned to the device if
+ * no name is specified in its configuration. In such case "<id>" is
+ * generated with ida_simple_get() and provided id field is ignored.
+ */
struct nvmem_config {
struct device *dev;
const char *name;
--
2.14.3
^ permalink raw reply related
* [PATCH v3 02/22] nvmem: core: Allow specifying device name verbatim
From: Andrey Smirnov @ 2018-01-03 20:00 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20180103200114.23922-1-andrew.smirnov@gmail.com>
Add code to allow avoid having nvmem core append a numeric suffix to
the end of the name by passing config->id of -1.
Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Heiko Stuebner <heiko@sntech.de>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Carlo Caione <carlo@caione.org>
Cc: Kevin Hilman <khilman@baylibre.com>
Cc: Matthias Brugger <matthias.bgg@gmail.com>
Cc: cphealy at gmail.com
Cc: linux-kernel at vger.kernel.org
Cc: linux-mediatek at lists.infradead.org
Cc: linux-rockchip at lists.infradead.org
Cc: linux-amlogic at lists.infradead.org
Cc: linux-arm-kernel at lists.infradead.org
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
---
drivers/nvmem/core.c | 11 ++++++++---
include/linux/nvmem-provider.h | 3 +++
2 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c
index 5a5cefd12153..57cbeacfbeb2 100644
--- a/drivers/nvmem/core.c
+++ b/drivers/nvmem/core.c
@@ -475,9 +475,14 @@ struct nvmem_device *nvmem_register(const struct nvmem_config *config)
nvmem->reg_write = config->reg_write;
np = config->dev->of_node;
nvmem->dev.of_node = np;
- dev_set_name(&nvmem->dev, "%s%d",
- config->name ? : "nvmem",
- config->name ? config->id : nvmem->id);
+
+ if (config->id == -1 && config->name) {
+ dev_set_name(&nvmem->dev, "%s", config->name);
+ } else {
+ dev_set_name(&nvmem->dev, "%s%d",
+ config->name ? : "nvmem",
+ config->name ? config->id : nvmem->id);
+ }
nvmem->read_only = of_property_read_bool(np, "read-only") |
config->read_only;
diff --git a/include/linux/nvmem-provider.h b/include/linux/nvmem-provider.h
index 27e599222ec1..4889a6c62a81 100644
--- a/include/linux/nvmem-provider.h
+++ b/include/linux/nvmem-provider.h
@@ -43,6 +43,9 @@ typedef int (*nvmem_reg_write_t)(void *priv, unsigned int offset,
* Note: A default "nvmem<id>" name will be assigned to the device if
* no name is specified in its configuration. In such case "<id>" is
* generated with ida_simple_get() and provided id field is ignored.
+ *
+ * Note: Specifying name and setting id to -1 implies a unique device
+ * whose name is provided as-is (kept unaltered).
*/
struct nvmem_config {
struct device *dev;
--
2.14.3
^ permalink raw reply related
* [PATCH v3 03/22] nvmem: Introduce devm_nvmem_(un)register()
From: Andrey Smirnov @ 2018-01-03 20:00 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20180103200114.23922-1-andrew.smirnov@gmail.com>
Introduce devm_nvmem_register()/devm_nvmem_unregister() to make
.remove() unnecessary in trivial drivers.
Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Heiko Stuebner <heiko@sntech.de>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Carlo Caione <carlo@caione.org>
Cc: Kevin Hilman <khilman@baylibre.com>
Cc: Matthias Brugger <matthias.bgg@gmail.com>
Cc: cphealy at gmail.com
Cc: linux-kernel at vger.kernel.org
Cc: linux-mediatek at lists.infradead.org
Cc: linux-rockchip at lists.infradead.org
Cc: linux-amlogic at lists.infradead.org
Cc: linux-arm-kernel at lists.infradead.org
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
---
drivers/nvmem/core.c | 57 ++++++++++++++++++++++++++++++++++++++++++
include/linux/nvmem-provider.h | 17 +++++++++++++
2 files changed, 74 insertions(+)
diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c
index 57cbeacfbeb2..1f387a2d915f 100644
--- a/drivers/nvmem/core.c
+++ b/drivers/nvmem/core.c
@@ -551,6 +551,63 @@ int nvmem_unregister(struct nvmem_device *nvmem)
}
EXPORT_SYMBOL_GPL(nvmem_unregister);
+static void devm_nvmem_release(struct device *dev, void *res)
+{
+ WARN_ON(nvmem_unregister(*(struct nvmem_device **)res));
+}
+
+/**
+ * devm_nvmem_register() - Register a managed nvmem device for given nvmem_config.
+ * Also creates an binary entry in /sys/bus/nvmem/devices/dev-name/nvmem
+ *
+ * @config: nvmem device configuration with which nvmem device is created.
+ *
+ * Return: Will be an ERR_PTR() on error or a valid pointer to nvmem_device
+ * on success.
+ */
+struct nvmem_device *devm_nvmem_register(struct device *dev,
+ const struct nvmem_config *config)
+{
+ struct nvmem_device **ptr, *nvmem;
+
+ ptr = devres_alloc(devm_nvmem_release, sizeof(*ptr), GFP_KERNEL);
+ if (!ptr)
+ return ERR_PTR(-ENOMEM);
+
+ nvmem = nvmem_register(config);
+
+ if (!IS_ERR(nvmem)) {
+ *ptr = nvmem;
+ devres_add(dev, ptr);
+ } else {
+ devres_free(ptr);
+ }
+
+ return nvmem;
+}
+EXPORT_SYMBOL_GPL(devm_nvmem_register);
+
+static int devm_nvmem_match(struct device *dev, void *res, void *data)
+{
+ struct nvmem_device **r = res;
+
+ return *r == data;
+}
+
+/**
+ * devm_nvmem_unregister() - Unregister previously registered managed nvmem device
+ *
+ * @nvmem: Pointer to previously registered nvmem device.
+ *
+ * Return: Will be an negative on error or a zero on success.
+ */
+int devm_nvmem_unregister(struct device *dev, struct nvmem_device *nvmem)
+{
+ return devres_release(dev, devm_nvmem_release, devm_nvmem_match, nvmem);
+}
+EXPORT_SYMBOL(devm_nvmem_unregister);
+
+
static struct nvmem_device *__nvmem_device_get(struct device_node *np,
struct nvmem_cell **cellp,
const char *cell_id)
diff --git a/include/linux/nvmem-provider.h b/include/linux/nvmem-provider.h
index 4889a6c62a81..7f2f610c6eea 100644
--- a/include/linux/nvmem-provider.h
+++ b/include/linux/nvmem-provider.h
@@ -72,6 +72,11 @@ struct nvmem_config {
struct nvmem_device *nvmem_register(const struct nvmem_config *cfg);
int nvmem_unregister(struct nvmem_device *nvmem);
+struct nvmem_device *devm_nvmem_register(struct device *dev,
+ const struct nvmem_config *cfg);
+
+int devm_nvmem_unregister(struct device *dev, struct nvmem_device *nvmem);
+
#else
static inline struct nvmem_device *nvmem_register(const struct nvmem_config *c)
@@ -84,5 +89,17 @@ static inline int nvmem_unregister(struct nvmem_device *nvmem)
return -ENOSYS;
}
+static inline struct nvmem_device *
+devm_nvmem_register(struct device *dev, const struct nvmem_config *c)
+{
+ return nvmem_register(c);
+}
+
+static inline int
+devm_nvmem_unregister(struct device *dev, struct nvmem_device *nvmem)
+{
+ return nvmem_unregister(nvmem);
+}
+
#endif /* CONFIG_NVMEM */
#endif /* ifndef _LINUX_NVMEM_PROVIDER_H */
--
2.14.3
^ permalink raw reply related
* [PATCH v3 04/22] nvmem: vf610-ocotp: Convert to use devm_nvmem_register()
From: Andrey Smirnov @ 2018-01-03 20:00 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20180103200114.23922-1-andrew.smirnov@gmail.com>
Drop all of the code related to .remove hook and make use of
devm_nvmem_register() instead.
Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Heiko Stuebner <heiko@sntech.de>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Carlo Caione <carlo@caione.org>
Cc: Kevin Hilman <khilman@baylibre.com>
Cc: Matthias Brugger <matthias.bgg@gmail.com>
Cc: cphealy at gmail.com
Cc: linux-kernel at vger.kernel.org
Cc: linux-mediatek at lists.infradead.org
Cc: linux-rockchip at lists.infradead.org
Cc: linux-amlogic at lists.infradead.org
Cc: linux-arm-kernel at lists.infradead.org
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
---
drivers/nvmem/vf610-ocotp.c | 12 +-----------
1 file changed, 1 insertion(+), 11 deletions(-)
diff --git a/drivers/nvmem/vf610-ocotp.c b/drivers/nvmem/vf610-ocotp.c
index 5ae9e002f195..752a0983e7fb 100644
--- a/drivers/nvmem/vf610-ocotp.c
+++ b/drivers/nvmem/vf610-ocotp.c
@@ -217,13 +217,6 @@ static const struct of_device_id ocotp_of_match[] = {
};
MODULE_DEVICE_TABLE(of, ocotp_of_match);
-static int vf610_ocotp_remove(struct platform_device *pdev)
-{
- struct vf610_ocotp *ocotp_dev = platform_get_drvdata(pdev);
-
- return nvmem_unregister(ocotp_dev->nvmem);
-}
-
static int vf610_ocotp_probe(struct platform_device *pdev)
{
struct device *dev = &pdev->dev;
@@ -251,13 +244,11 @@ static int vf610_ocotp_probe(struct platform_device *pdev)
ocotp_config.priv = ocotp_dev;
ocotp_config.dev = dev;
- ocotp_dev->nvmem = nvmem_register(&ocotp_config);
+ ocotp_dev->nvmem = devm_nvmem_register(dev, &ocotp_config);
if (IS_ERR(ocotp_dev->nvmem))
return PTR_ERR(ocotp_dev->nvmem);
ocotp_dev->dev = dev;
- platform_set_drvdata(pdev, ocotp_dev);
-
ocotp_dev->timing = vf610_ocotp_calculate_timing(ocotp_dev);
return 0;
@@ -265,7 +256,6 @@ static int vf610_ocotp_probe(struct platform_device *pdev)
static struct platform_driver vf610_ocotp_driver = {
.probe = vf610_ocotp_probe,
- .remove = vf610_ocotp_remove,
.driver = {
.name = "vf610-ocotp",
.of_match_table = ocotp_of_match,
--
2.14.3
^ permalink raw reply related
* [PATCH v3 05/22] nvmem: imx-ocotp: Convert to use devm_nvmem_register()
From: Andrey Smirnov @ 2018-01-03 20:00 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20180103200114.23922-1-andrew.smirnov@gmail.com>
Drop all of the code related to .remove hook and make use of
devm_nvmem_register() instead.
Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Heiko Stuebner <heiko@sntech.de>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Carlo Caione <carlo@caione.org>
Cc: Kevin Hilman <khilman@baylibre.com>
Cc: Matthias Brugger <matthias.bgg@gmail.com>
Cc: cphealy at gmail.com
Cc: linux-kernel at vger.kernel.org
Cc: linux-mediatek at lists.infradead.org
Cc: linux-rockchip at lists.infradead.org
Cc: linux-amlogic at lists.infradead.org
Cc: linux-arm-kernel at lists.infradead.org
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
---
drivers/nvmem/imx-ocotp.c | 12 +-----------
1 file changed, 1 insertion(+), 11 deletions(-)
diff --git a/drivers/nvmem/imx-ocotp.c b/drivers/nvmem/imx-ocotp.c
index d7ba351a70c9..68deffe636f3 100644
--- a/drivers/nvmem/imx-ocotp.c
+++ b/drivers/nvmem/imx-ocotp.c
@@ -466,26 +466,16 @@ static int imx_ocotp_probe(struct platform_device *pdev)
imx_ocotp_nvmem_config.dev = dev;
imx_ocotp_nvmem_config.priv = priv;
priv->config = &imx_ocotp_nvmem_config;
- nvmem = nvmem_register(&imx_ocotp_nvmem_config);
+ nvmem = devm_nvmem_register(dev, &imx_ocotp_nvmem_config);
if (IS_ERR(nvmem))
return PTR_ERR(nvmem);
- platform_set_drvdata(pdev, nvmem);
-
return 0;
}
-static int imx_ocotp_remove(struct platform_device *pdev)
-{
- struct nvmem_device *nvmem = platform_get_drvdata(pdev);
-
- return nvmem_unregister(nvmem);
-}
-
static struct platform_driver imx_ocotp_driver = {
.probe = imx_ocotp_probe,
- .remove = imx_ocotp_remove,
.driver = {
.name = "imx_ocotp",
.of_match_table = imx_ocotp_dt_ids,
--
2.14.3
^ permalink raw reply related
* [PATCH v3 06/22] nvmem: uniphier-efuse: Convert to use devm_nvmem_register()
From: Andrey Smirnov @ 2018-01-03 20:00 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20180103200114.23922-1-andrew.smirnov@gmail.com>
Drop all of the code related to .remove hook and make use of
devm_nvmem_register() instead.
Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Heiko Stuebner <heiko@sntech.de>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Carlo Caione <carlo@caione.org>
Cc: Kevin Hilman <khilman@baylibre.com>
Cc: Matthias Brugger <matthias.bgg@gmail.com>
Cc: cphealy at gmail.com
Cc: linux-kernel at vger.kernel.org
Cc: linux-mediatek at lists.infradead.org
Cc: linux-rockchip at lists.infradead.org
Cc: linux-amlogic at lists.infradead.org
Cc: linux-arm-kernel at lists.infradead.org
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
---
drivers/nvmem/uniphier-efuse.c | 12 +-----------
1 file changed, 1 insertion(+), 11 deletions(-)
diff --git a/drivers/nvmem/uniphier-efuse.c b/drivers/nvmem/uniphier-efuse.c
index 9d278b4e1dc7..7ddc6fc012c9 100644
--- a/drivers/nvmem/uniphier-efuse.c
+++ b/drivers/nvmem/uniphier-efuse.c
@@ -60,22 +60,13 @@ static int uniphier_efuse_probe(struct platform_device *pdev)
econfig.size = resource_size(res);
econfig.priv = priv;
econfig.dev = dev;
- nvmem = nvmem_register(&econfig);
+ nvmem = devm_nvmem_register(dev, &econfig);
if (IS_ERR(nvmem))
return PTR_ERR(nvmem);
- platform_set_drvdata(pdev, nvmem);
-
return 0;
}
-static int uniphier_efuse_remove(struct platform_device *pdev)
-{
- struct nvmem_device *nvmem = platform_get_drvdata(pdev);
-
- return nvmem_unregister(nvmem);
-}
-
static const struct of_device_id uniphier_efuse_of_match[] = {
{ .compatible = "socionext,uniphier-efuse",},
{/* sentinel */},
@@ -84,7 +75,6 @@ MODULE_DEVICE_TABLE(of, uniphier_efuse_of_match);
static struct platform_driver uniphier_efuse_driver = {
.probe = uniphier_efuse_probe,
- .remove = uniphier_efuse_remove,
.driver = {
.name = "uniphier-efuse",
.of_match_table = uniphier_efuse_of_match,
--
2.14.3
^ permalink raw reply related
* [PATCH v3 07/22] nvmem: snvs_lgpr: Convert to use devm_nvmem_register()
From: Andrey Smirnov @ 2018-01-03 20:00 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20180103200114.23922-1-andrew.smirnov@gmail.com>
Drop all of the code related to .remove hook and make use of
devm_nvmem_register() instead.
Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Heiko Stuebner <heiko@sntech.de>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Carlo Caione <carlo@caione.org>
Cc: Kevin Hilman <khilman@baylibre.com>
Cc: Matthias Brugger <matthias.bgg@gmail.com>
Cc: cphealy at gmail.com
Cc: linux-kernel at vger.kernel.org
Cc: linux-mediatek at lists.infradead.org
Cc: linux-rockchip at lists.infradead.org
Cc: linux-amlogic at lists.infradead.org
Cc: linux-arm-kernel at lists.infradead.org
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
---
drivers/nvmem/snvs_lpgpr.c | 12 +-----------
1 file changed, 1 insertion(+), 11 deletions(-)
diff --git a/drivers/nvmem/snvs_lpgpr.c b/drivers/nvmem/snvs_lpgpr.c
index e5c2a4a17f03..6a2fdd09e74a 100644
--- a/drivers/nvmem/snvs_lpgpr.c
+++ b/drivers/nvmem/snvs_lpgpr.c
@@ -117,22 +117,13 @@ static int snvs_lpgpr_probe(struct platform_device *pdev)
cfg->reg_read = snvs_lpgpr_read,
cfg->reg_write = snvs_lpgpr_write,
- nvmem = nvmem_register(cfg);
+ nvmem = devm_nvmem_register(dev, cfg);
if (IS_ERR(nvmem))
return PTR_ERR(nvmem);
- platform_set_drvdata(pdev, nvmem);
-
return 0;
}
-static int snvs_lpgpr_remove(struct platform_device *pdev)
-{
- struct nvmem_device *nvmem = platform_get_drvdata(pdev);
-
- return nvmem_unregister(nvmem);
-}
-
static const struct of_device_id snvs_lpgpr_dt_ids[] = {
{ .compatible = "fsl,imx6q-snvs-lpgpr", .data = &snvs_lpgpr_cfg_imx6q },
{ .compatible = "fsl,imx6ul-snvs-lpgpr",
@@ -143,7 +134,6 @@ MODULE_DEVICE_TABLE(of, snvs_lpgpr_dt_ids);
static struct platform_driver snvs_lpgpr_driver = {
.probe = snvs_lpgpr_probe,
- .remove = snvs_lpgpr_remove,
.driver = {
.name = "snvs_lpgpr",
.of_match_table = snvs_lpgpr_dt_ids,
--
2.14.3
^ permalink raw reply related
* [PATCH v3 08/22] nvmem: rockchip-efuse: Convert to use devm_nvmem_register()
From: Andrey Smirnov @ 2018-01-03 20:01 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20180103200114.23922-1-andrew.smirnov@gmail.com>
Drop all of the code related to .remove hook and make use of
devm_nvmem_register() instead.
Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Heiko Stuebner <heiko@sntech.de>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Carlo Caione <carlo@caione.org>
Cc: Kevin Hilman <khilman@baylibre.com>
Cc: Matthias Brugger <matthias.bgg@gmail.com>
Cc: cphealy at gmail.com
Cc: linux-kernel at vger.kernel.org
Cc: linux-mediatek at lists.infradead.org
Cc: linux-rockchip at lists.infradead.org
Cc: linux-amlogic at lists.infradead.org
Cc: linux-arm-kernel at lists.infradead.org
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
---
drivers/nvmem/rockchip-efuse.c | 12 +-----------
1 file changed, 1 insertion(+), 11 deletions(-)
diff --git a/drivers/nvmem/rockchip-efuse.c b/drivers/nvmem/rockchip-efuse.c
index 123de77ca5d6..d6dc1330f895 100644
--- a/drivers/nvmem/rockchip-efuse.c
+++ b/drivers/nvmem/rockchip-efuse.c
@@ -221,25 +221,15 @@ static int rockchip_efuse_probe(struct platform_device *pdev)
econfig.reg_read = match->data;
econfig.priv = efuse;
econfig.dev = efuse->dev;
- nvmem = nvmem_register(&econfig);
+ nvmem = devm_nvmem_register(dev, &econfig);
if (IS_ERR(nvmem))
return PTR_ERR(nvmem);
- platform_set_drvdata(pdev, nvmem);
-
return 0;
}
-static int rockchip_efuse_remove(struct platform_device *pdev)
-{
- struct nvmem_device *nvmem = platform_get_drvdata(pdev);
-
- return nvmem_unregister(nvmem);
-}
-
static struct platform_driver rockchip_efuse_driver = {
.probe = rockchip_efuse_probe,
- .remove = rockchip_efuse_remove,
.driver = {
.name = "rockchip-efuse",
.of_match_table = rockchip_efuse_match,
--
2.14.3
^ permalink raw reply related
* [PATCH v3 09/22] nvmem: qfprom: Convert to use devm_nvmem_register()
From: Andrey Smirnov @ 2018-01-03 20:01 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20180103200114.23922-1-andrew.smirnov@gmail.com>
Drop all of the code related to .remove hook and make use of
devm_nvmem_register() instead.
Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Heiko Stuebner <heiko@sntech.de>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Carlo Caione <carlo@caione.org>
Cc: Kevin Hilman <khilman@baylibre.com>
Cc: Matthias Brugger <matthias.bgg@gmail.com>
Cc: cphealy at gmail.com
Cc: linux-kernel at vger.kernel.org
Cc: linux-mediatek at lists.infradead.org
Cc: linux-rockchip at lists.infradead.org
Cc: linux-amlogic at lists.infradead.org
Cc: linux-arm-kernel at lists.infradead.org
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
---
drivers/nvmem/qfprom.c | 12 +-----------
1 file changed, 1 insertion(+), 11 deletions(-)
diff --git a/drivers/nvmem/qfprom.c b/drivers/nvmem/qfprom.c
index cb3b48b47d64..13bf43c84bd4 100644
--- a/drivers/nvmem/qfprom.c
+++ b/drivers/nvmem/qfprom.c
@@ -47,13 +47,6 @@ static int qfprom_reg_write(void *context,
return 0;
}
-static int qfprom_remove(struct platform_device *pdev)
-{
- struct nvmem_device *nvmem = platform_get_drvdata(pdev);
-
- return nvmem_unregister(nvmem);
-}
-
static struct nvmem_config econfig = {
.name = "qfprom",
.stride = 1,
@@ -82,12 +75,10 @@ static int qfprom_probe(struct platform_device *pdev)
econfig.dev = dev;
econfig.priv = priv;
- nvmem = nvmem_register(&econfig);
+ nvmem = devm_nvmem_register(dev, &econfig);
if (IS_ERR(nvmem))
return PTR_ERR(nvmem);
- platform_set_drvdata(pdev, nvmem);
-
return 0;
}
@@ -99,7 +90,6 @@ MODULE_DEVICE_TABLE(of, qfprom_of_match);
static struct platform_driver qfprom_driver = {
.probe = qfprom_probe,
- .remove = qfprom_remove,
.driver = {
.name = "qcom,qfprom",
.of_match_table = qfprom_of_match,
--
2.14.3
^ permalink raw reply related
* [PATCH v3 10/22] nvmem: mtk-efuse: Convert to use devm_nvmem_register()
From: Andrey Smirnov @ 2018-01-03 20:01 UTC (permalink / raw)
To: linux-arm-kernel
In-Reply-To: <20180103200114.23922-1-andrew.smirnov@gmail.com>
Drop all of the code related to .remove hook and make use of
devm_nvmem_register() instead.
Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Cc: Heiko Stuebner <heiko@sntech.de>
Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
Cc: Carlo Caione <carlo@caione.org>
Cc: Kevin Hilman <khilman@baylibre.com>
Cc: Matthias Brugger <matthias.bgg@gmail.com>
Cc: cphealy at gmail.com
Cc: linux-kernel at vger.kernel.org
Cc: linux-mediatek at lists.infradead.org
Cc: linux-rockchip at lists.infradead.org
Cc: linux-amlogic at lists.infradead.org
Cc: linux-arm-kernel at lists.infradead.org
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
---
drivers/nvmem/mtk-efuse.c | 12 +-----------
1 file changed, 1 insertion(+), 11 deletions(-)
diff --git a/drivers/nvmem/mtk-efuse.c b/drivers/nvmem/mtk-efuse.c
index 9ee3479cfc7b..97ab7e6a4789 100644
--- a/drivers/nvmem/mtk-efuse.c
+++ b/drivers/nvmem/mtk-efuse.c
@@ -72,22 +72,13 @@ static int mtk_efuse_probe(struct platform_device *pdev)
econfig.size = resource_size(res);
econfig.priv = priv;
econfig.dev = dev;
- nvmem = nvmem_register(&econfig);
+ nvmem = devm_nvmem_register(dev, &econfig);
if (IS_ERR(nvmem))
return PTR_ERR(nvmem);
- platform_set_drvdata(pdev, nvmem);
-
return 0;
}
-static int mtk_efuse_remove(struct platform_device *pdev)
-{
- struct nvmem_device *nvmem = platform_get_drvdata(pdev);
-
- return nvmem_unregister(nvmem);
-}
-
static const struct of_device_id mtk_efuse_of_match[] = {
{ .compatible = "mediatek,mt8173-efuse",},
{ .compatible = "mediatek,efuse",},
@@ -97,7 +88,6 @@ MODULE_DEVICE_TABLE(of, mtk_efuse_of_match);
static struct platform_driver mtk_efuse_driver = {
.probe = mtk_efuse_probe,
- .remove = mtk_efuse_remove,
.driver = {
.name = "mediatek,efuse",
.of_match_table = mtk_efuse_of_match,
--
2.14.3
^ permalink raw reply related
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox