Commit 'net: emacps: Add missing dependency for PTP'
(355605acc45567a76ae5d8f5a151e72c8edc51c8) adds PTP_1588_CLOCK to the
driver's dependencies, but only the HW timestamping feature, which has a
dedicated entry in Kconfig, depends on it.
Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Due to dependencies between timer and CPU frequency, only changes by
powers of two are allowed. The clocksource driver prevents other
changes, but with cpufreq and its governors it can result in being
spammed with error messages constantly. Hence, remove the 222 MHz OPP.
Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Michal Simek [Thu, 18 Sep 2014 05:27:41 +0000 (07:27 +0200)]
net: emacps: Add missing dependency for PTP
Error log:
drivers/built-in.o: In function `xemacps_init_hw':
:(.text+0xf8720): undefined reference to `ptp_clock_register'
:(.text+0xf873c): undefined reference to `ptp_clock_index'
drivers/built-in.o: In function `xemacps_close':
:(.text+0xf8e78): undefined reference to `ptp_clock_unregister'
make: *** [vmlinux] Error 1
Reported-by: Soren Brinkmann <soren.brinkmann@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Michal Simek [Wed, 17 Sep 2014 11:48:54 +0000 (13:48 +0200)]
ARM: dts: Fix uart clocks binding
Use the latest binding not to show deprecated messages.
xuartps e0001000.serial: clock name 'aper_clk' is deprecated.
xuartps e0001000.serial: clock name 'ref_clk' is deprecated.
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
gpu: drm: xylon: Fixed compile error for kernel version 3.15
Missing drm_framebuffer member in drm_crtc structure.
Error log:
drivers/gpu/drm/xylon/xylon_crtc.c: In function
'xylon_drm_crtc_mode_set':
drivers/gpu/drm/xylon/xylon_crtc.c:193:55: error: 'struct drm_crtc'
has no member named 'fb'
ret = xylon_drm_plane_fb_set(crtc->private, base_crtc->fb,
^
drivers/gpu/drm/xylon/xylon_crtc.c: In function
'xylon_drm_crtc_mode_set_base':
drivers/gpu/drm/xylon/xylon_crtc.c:211:55: error:
'struct drm_crtc' has no member named 'fb'
ret = xylon_drm_plane_fb_set(crtc->private, base_crtc->fb,
^
drivers/gpu/drm/xylon/xylon_crtc.c: In function
'xylon_drm_crtc_page_flip':
drivers/gpu/drm/xylon/xylon_crtc.c:308:11: error:
'struct drm_crtc' has no member named 'fb'
base_crtc->fb = fb;
^
drivers/gpu/drm/xylon/xylon_crtc.c: In function
'xylon_drm_crtc_set_property':
drivers/gpu/drm/xylon/xylon_crtc.c:385:54: error:
'struct drm_crtc' has no member named 'fb'
if (xylon_drm_plane_fb_set(crtc->private, base_crtc->fb,
Signed-off-by: Davor Joja <davorjoja@logicbricks.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Daniel Borkmann [Tue, 22 Jul 2014 13:22:45 +0000 (15:22 +0200)]
net: sctp: inherit auth_capable on INIT collisions
Jason reported an oops caused by SCTP on his ARM machine with
SCTP authentication enabled:
Internal error: Oops: 17 [#1] ARM
CPU: 0 PID: 104 Comm: sctp-test Not tainted 3.13.0-68744-g3632f30c9b20-dirty #1
task: c6eefa40 ti: c6f52000 task.ti: c6f52000
PC is at sctp_auth_calculate_hmac+0xc4/0x10c
LR is at sg_init_table+0x20/0x38
pc : [<c024bb80>] lr : [<c00f32dc>] psr: 40000013
sp : c6f538e8 ip : 00000000 fp : c6f53924
r10: c6f50d80 r9 : 00000000 r8 : 00010000
r7 : 00000000 r6 : c7be4000 r5 : 00000000 r4 : c6f56254
r3 : c00c8170 r2 : 00000001 r1 : 00000008 r0 : c6f1e660
Flags: nZcv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
Control: 0005397f Table: 06f28000 DAC: 00000015
Process sctp-test (pid: 104, stack limit = 0xc6f521c0)
Stack: (0xc6f538e8 to 0xc6f54000)
[...]
Backtrace:
[<c024babc>] (sctp_auth_calculate_hmac+0x0/0x10c) from [<c0249af8>] (sctp_packet_transmit+0x33c/0x5c8)
[<c02497bc>] (sctp_packet_transmit+0x0/0x5c8) from [<c023e96c>] (sctp_outq_flush+0x7fc/0x844)
[<c023e170>] (sctp_outq_flush+0x0/0x844) from [<c023ef78>] (sctp_outq_uncork+0x24/0x28)
[<c023ef54>] (sctp_outq_uncork+0x0/0x28) from [<c0234364>] (sctp_side_effects+0x1134/0x1220)
[<c0233230>] (sctp_side_effects+0x0/0x1220) from [<c02330b0>] (sctp_do_sm+0xac/0xd4)
[<c0233004>] (sctp_do_sm+0x0/0xd4) from [<c023675c>] (sctp_assoc_bh_rcv+0x118/0x160)
[<c0236644>] (sctp_assoc_bh_rcv+0x0/0x160) from [<c023d5bc>] (sctp_inq_push+0x6c/0x74)
[<c023d550>] (sctp_inq_push+0x0/0x74) from [<c024a6b0>] (sctp_rcv+0x7d8/0x888)
While we already had various kind of bugs in that area ec0223ec48a9 ("net: sctp: fix sctp_sf_do_5_1D_ce to verify if
we/peer is AUTH capable") and b14878ccb7fa ("net: sctp: cache
auth_enable per endpoint"), this one is a bit of a different
kind.
Giving a bit more background on why SCTP authentication is
needed can be found in RFC4895:
SCTP uses 32-bit verification tags to protect itself against
blind attackers. These values are not changed during the
lifetime of an SCTP association.
Looking at new SCTP extensions, there is the need to have a
method of proving that an SCTP chunk(s) was really sent by
the original peer that started the association and not by a
malicious attacker.
To cause this bug, we're triggering an INIT collision between
peers; normal SCTP handshake where both sides intent to
authenticate packets contains RANDOM; CHUNKS; HMAC-ALGO
parameters that are being negotiated among peers:
RFC4895 says that each endpoint therefore knows its own random
number and the peer's random number *after* the association
has been established. The local and peer's random number along
with the shared key are then part of the secret used for
calculating the HMAC in the AUTH chunk.
Now, in our scenario, we have 2 threads with 1 non-blocking
SEQ_PACKET socket each, setting up common shared SCTP_AUTH_KEY
and SCTP_AUTH_ACTIVE_KEY properly, and each of them calling
sctp_bindx(3), listen(2) and connect(2) against each other,
thus the handshake looks similar to this, e.g.:
Since such collisions can also happen with verification tags,
the RFC4895 for AUTH rather vaguely says under section 6.1:
In case of INIT collision, the rules governing the handling
of this Random Number follow the same pattern as those for
the Verification Tag, as explained in Section 5.2.4 of
RFC 2960 [5]. Therefore, each endpoint knows its own Random
Number and the peer's Random Number after the association
has been established.
In RFC2960, section 5.2.4, we're eventually hitting Action B:
B) In this case, both sides may be attempting to start an
association at about the same time but the peer endpoint
started its INIT after responding to the local endpoint's
INIT. Thus it may have picked a new Verification Tag not
being aware of the previous Tag it had sent this endpoint.
The endpoint should stay in or enter the ESTABLISHED
state but it MUST update its peer's Verification Tag from
the State Cookie, stop any init or cookie timers that may
running and send a COOKIE ACK.
In other words, the handling of the Random parameter is the
same as behavior for the Verification Tag as described in
Action B of section 5.2.4.
Looking at the code, we exactly hit the sctp_sf_do_dupcook_b()
case which triggers an SCTP_CMD_UPDATE_ASSOC command to the
side effect interpreter, and in fact it properly copies over
peer_{random, hmacs, chunks} parameters from the newly created
association to update the existing one.
Also, the old asoc_shared_key is being released and based on
the new params, sctp_auth_asoc_init_active_key() updated.
However, the issue observed in this case is that the previous
asoc->peer.auth_capable was 0, and has *not* been updated, so
that instead of creating a new secret, we're doing an early
return from the function sctp_auth_asoc_init_active_key()
leaving asoc->asoc_shared_key as NULL. However, we now have to
authenticate chunks from the updated chunk list (e.g. COOKIE-ACK).
That in fact causes the server side when responding with ...
... to trigger a NULL pointer dereference, since in
sctp_packet_transmit(), it discovers that an AUTH chunk is
being queued for xmit, and thus it calls sctp_auth_calculate_hmac().
Since the asoc->active_key_id is still inherited from the
endpoint, and the same as encoded into the chunk, it uses
asoc->asoc_shared_key, which is still NULL, as an asoc_key
and dereferences it in ...
... causing an oops. All this happens because sctp_make_cookie_ack()
called with the *new* association has the peer.auth_capable=1
and therefore marks the chunk with auth=1 after checking
sctp_auth_send_cid(), but it is *actually* sent later on over
the then *updated* association's transport that didn't initialize
its shared key due to peer.auth_capable=0. Since control chunks
in that case are not sent by the temporary association which
are scheduled for deletion, they are issued for xmit via
SCTP_CMD_REPLY in the interpreter with the context of the
*updated* association. peer.auth_capable was 0 in the updated
association (which went from COOKIE_WAIT into ESTABLISHED state),
since all previous processing that performed sctp_process_init()
was being done on temporary associations, that we eventually
throw away each time.
The correct fix is to update to the new peer.auth_capable
value as well in the collision case via sctp_assoc_update(),
so that in case the collision migrated from 0 -> 1,
sctp_auth_asoc_init_active_key() can properly recalculate
the secret. This therefore fixes the observed server panic.
Fixes: 730fc3d05cd4 ("[SCTP]: Implete SCTP-AUTH parameter processing") Reported-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com> Signed-off-by: Daniel Borkmann <dborkman@redhat.com> Tested-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com> Cc: Vlad Yasevich <vyasevich@gmail.com> Acked-by: Vlad Yasevich <vyasevich@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This patch updates the driver to use DEVICE_ATTR_RO/WO/RW
macros. Modified the driver api names to make compatilble with the
DEVICE_ATTR_RO/WO/RW macros.
Signed-off-by: Kedareswara rao Appana <appanad@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
ARM: zynq: pm: Don't have DDR self-refresh always on
Apparently, having self-refresh enabled at all times negatively affects
memory performance. Hence, only enable clock-stop at boot and limit
self-refresh to suspend.
Guenter Roeck [Tue, 10 Jun 2014 18:59:14 +0000 (11:59 -0700)]
of/platform: Fix microblaze build failure
Commit bf5db2f (microblaze: Use generic device.h) removes the
microblaze specific pdev_archdata and dma_mask.
At the same time, commit 591c1ee (of: configure the platform
device dma parameters) initializes the just removed field.
This causes all microblaze builds to fail.
Drop the unnecessary initialization.
Cc: Michal Simek <michal.simek@xilinx.com> Signed-off-by: Guenter Roeck <linux@roeck-us.net> Acked-by: Michal Simek <monstr@monstr.eu> Signed-off-by: Rob Herring <robh@kernel.org>
Michal Simek [Fri, 16 May 2014 11:37:02 +0000 (13:37 +0200)]
microblaze: Cleanup PCI_DRAM_OFFSET handling
PCI_DRAM_OFFSET/pci_dram_offset is 0 all the time and there
is no difference for PCI and !PCI cases.
Also remove the whole code which setup archdata.dma_data
which is completely unused.
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Michal Simek [Fri, 29 Aug 2014 14:16:49 +0000 (16:16 +0200)]
ARM: dtses: Remove all compatible string from phy node
Compatible string is not listed anywhere and it is even
not used by the kernel. Autodetection is done automatically.
If you want to specify exact PHYID please use compatible string
in this format.
compatible = "ethernet-phy-id0141.0e40", "ethernet-phy-ieee802.3-c22";
For more information look at here:
Documentation/devicetree/bindings/net/phy.txt
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
The existing timeout value in wait_for_completion_timeout is
calculated from the transfer length and speed with tolerance of 10msec.
This is too low because this is used for error conditions such as
hardware hang etc.
The xfer->speed_hz considered may not be the actual speed set
because the best clock divisor is chosen from a limited set such that
the actual speed <= requested speed. This will lead to timeout being
less than actual transfer time.
Considering acceptable latencies, this timeout can be set to a
value double the expected transfer plus 100 msecs.
This patch adds the same in the core.
Signed-off-by: Harini Katakam <harinik@xilinx.com> Signed-off-by: Mark Brown <broonie@linaro.org>
Soren Brinkmann [Fri, 29 Aug 2014 00:18:21 +0000 (17:18 -0700)]
ARM: zynq_defconfig: Remove debug UART
As the help text points out:
"Note that selecting this option will limit the kernel to a single
UART definition, as specified below. Attempting to boot the kernel
image on a different platform *will not work*, so this option should
not be enabled for kernels that are intended to be portable."
To avoid hangs on systems that don't use the expected UART, remove this
from the defconfig.
Reported-by: Andrei Simion <andreis@xilinx.com> Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Soren Brinkmann [Fri, 2 May 2014 21:07:32 +0000 (14:07 -0700)]
ARM: zynq: dt: Add a fixed regulator for CPU voltage
To silence the warning
cpufreq_cpu0: failed to get cpu0 regulator: -19
from the cpufreq driver regarding a missing regulator,
add a fixed regulator to the DT.
Zynq does not support voltage scaling and the CPU rail should always be
supplied with 1 V, hence it is added in the SOC-level dtsi.
Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Lucas Stach [Fri, 11 Apr 2014 14:59:37 +0000 (16:59 +0200)]
ARM: dts: zynq: drop address cells from GIC node
This is likely a copy-and-paste error from the
ARM GIC documentation, that has already been fixed.
address-cells should have been set to 0, as with the size
cells. As having those properties set to 0 is the
same thing as not specifying them, drop them completely.
Signed-off-by: Lucas Stach <l.stach@pengutronix.de> Acked-by: Rob Herring <robh@kernel.org> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Michal Simek [Wed, 13 Aug 2014 10:52:19 +0000 (12:52 +0200)]
xilinx: Remove .owner field for drivers
All drivers using module_platform_driver or platform_driver_register
don't need to to init .owner field.
Based on the patch from Peter Griffin <peter.griffin@linaro.org>
"mmc: remove .owner field for drivers using module_platform_driver"
This patch removes the superflous .owner field for drivers which
use the module_platform_driver API, as this is overriden in
platform_driver_register anyway.
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Michal Simek [Wed, 13 Aug 2014 11:14:51 +0000 (13:14 +0200)]
watchdog: xilinx: Remove .owner field for driver
There is no need to init .owner field.
Based on the patch from Peter Griffin <peter.griffin@linaro.org>
"mmc: remove .owner field for drivers using module_platform_driver"
This patch removes the superflous .owner field for drivers which
use the module_platform_driver API, as this is overriden in
platform_driver_register anyway."
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Michal Simek [Wed, 13 Aug 2014 11:46:16 +0000 (13:46 +0200)]
spi: cadence: Remove .owner field for driver
There is no need to init .owner field.
Based on the patch from Peter Griffin <peter.griffin@linaro.org>
"mmc: remove .owner field for drivers using module_platform_driver"
This patch removes the superflous .owner field for drivers which
use the module_platform_driver API, as this is overriden in
platform_driver_register anyway."
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Michal Simek [Wed, 13 Aug 2014 11:45:56 +0000 (13:45 +0200)]
spi: xilinx: Remove .owner field for driver
There is no need to init .owner field.
Based on the patch from Peter Griffin <peter.griffin@linaro.org>
"mmc: remove .owner field for drivers using module_platform_driver"
This patch removes the superflous .owner field for drivers which
use the module_platform_driver API, as this is overriden in
platform_driver_register anyway."
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Michal Simek [Wed, 13 Aug 2014 11:43:16 +0000 (13:43 +0200)]
tty: serial: uartlite: Remove .owner field for driver
There is no need to init .owner field.
Based on the patch from Peter Griffin <peter.griffin@linaro.org>
"mmc: remove .owner field for drivers using module_platform_driver"
This patch removes the superflous .owner field for drivers which
use the module_platform_driver API, as this is overriden in
platform_driver_register anyway."
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Michal Simek [Wed, 13 Aug 2014 11:41:05 +0000 (13:41 +0200)]
tty: serial: xuartps: Remove .owner field for driver
There is no need to init .owner field.
Based on the patch from Peter Griffin <peter.griffin@linaro.org>
"mmc: remove .owner field for drivers using module_platform_driver"
This patch removes the superflous .owner field for drivers which
use the module_platform_driver API, as this is overriden in
platform_driver_register anyway."
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Michal Simek [Wed, 13 Aug 2014 11:40:26 +0000 (13:40 +0200)]
net: xilinx: Remove .owner field for driver
There is no need to init .owner field.
Based on the patch from Peter Griffin <peter.griffin@linaro.org>
"mmc: remove .owner field for drivers using module_platform_driver"
This patch removes the superflous .owner field for drivers which
use the module_platform_driver API, as this is overriden in
platform_driver_register anyway."
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Michal Simek [Wed, 13 Aug 2014 11:39:29 +0000 (13:39 +0200)]
i2c: i2c-xiic: Remove .owner field for driver
There is no need to init .owner field.
Based on the patch from Peter Griffin <peter.griffin@linaro.org>
"mmc: remove .owner field for drivers using module_platform_driver"
This patch removes the superflous .owner field for drivers which
use the module_platform_driver API, as this is overriden in
platform_driver_register anyway."
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Michal Simek [Wed, 13 Aug 2014 11:38:35 +0000 (13:38 +0200)]
i2c: cadence: Remove .owner field for driver
There is no need to init .owner field.
Based on the patch from Peter Griffin <peter.griffin@linaro.org>
"mmc: remove .owner field for drivers using module_platform_driver"
This patch removes the superflous .owner field for drivers which
use the module_platform_driver API, as this is overriden in
platform_driver_register anyway."
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Michal Simek [Wed, 13 Aug 2014 11:37:57 +0000 (13:37 +0200)]
dma: xilinx: Remove .owner field for driver
There is no need to init .owner field.
Based on the patch from Peter Griffin <peter.griffin@linaro.org>
"mmc: remove .owner field for drivers using module_platform_driver"
This patch removes the superflous .owner field for drivers which
use the module_platform_driver API, as this is overriden in
platform_driver_register anyway."
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Michal Simek [Wed, 13 Aug 2014 11:30:29 +0000 (13:30 +0200)]
block: systemace: Remove .owner field for driver
There is no need to init .owner field.
Based on the patch from Peter Griffin <peter.griffin@linaro.org>
"mmc: remove .owner field for drivers using module_platform_driver"
This patch removes the superflous .owner field for drivers which
use the module_platform_driver API, as this is overriden in
platform_driver_register anyway."
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Michal Simek [Wed, 13 Aug 2014 11:35:47 +0000 (13:35 +0200)]
iio: adc: xilinx: Remove .owner field for driver
There is no need to init .owner field.
Based on the patch from Peter Griffin <peter.griffin@linaro.org>
"mmc: remove .owner field for drivers using module_platform_driver"
This patch removes the superflous .owner field for drivers which
use the module_platform_driver API, as this is overriden in
platform_driver_register anyway."
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Michal Simek [Wed, 13 Aug 2014 11:35:19 +0000 (13:35 +0200)]
gpio: zynq: Remove .owner field for driver
There is no need to init .owner field.
Based on the patch from Peter Griffin <peter.griffin@linaro.org>
"mmc: remove .owner field for drivers using module_platform_driver"
This patch removes the superflous .owner field for drivers which
use the module_platform_driver API, as this is overriden in
platform_driver_register anyway."
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Michal Simek [Wed, 13 Aug 2014 11:33:56 +0000 (13:33 +0200)]
ARM: zynq: cpuidle: Remove .owner field for driver
There is no need to init .owner field.
Based on the patch from Peter Griffin <peter.griffin@linaro.org>
"mmc: remove .owner field for drivers using module_platform_driver"
This patch removes the superflous .owner field for drivers which
use the module_platform_driver API, as this is overriden in
platform_driver_register anyway."
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Michal Simek [Wed, 13 Aug 2014 11:32:11 +0000 (13:32 +0200)]
char: xilinx_hwicap: Remove .owner field for driver
There is no need to init .owner field.
Based on the patch from Peter Griffin <peter.griffin@linaro.org>
"mmc: remove .owner field for drivers using module_platform_driver"
This patch removes the superflous .owner field for drivers which
use the module_platform_driver API, as this is overriden in
platform_driver_register anyway."
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
The current driver limits the MTU to (1500 - hard_header_len). If the kernel
boots the MTU is set to 1500 but if once changed to < 1500 it is not possible
to set it back to 1500 again.
After this fix it is possible to set the MTU back to 1500.
The specific change MTU function is replaced by the standard eth_change_mtu
one.
Signed-off-by: Stefan Eichenberger <stefan.eichenberger@netmodule.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Two seperate issues is fixed in the driver's probe function with this
patch:
a) If dma_declare_coherent_memory() fails, an error value is returned
instead of 0 (success).
b) In case of an error, the declared DMA coherent memory is released
again.
Signed-off-by: Kian Karas <kian.karas@cobham.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
spi: xilinx: Use pdev->id instead of pdev->dev.id for the SPI bus number
The Xilinx SPI driver initializes the bus_num field of the SPI master to
pdev->dev.id. pdev->dev.id is always 0 for platform devices which causes bus
number conflicts for the SPI controller when creating multiple device instances
of the driver. Instead use pdev->id which will have the assignt platform device
id. If the device is instantiated via devicetree pdev->id is -1 which will cause
the SPI core to dynamically assign a id (or use the id defined via a alias in
the devicetree).
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Mark Brown <broonie@linaro.org>
Michal Simek [Tue, 5 Aug 2014 09:21:13 +0000 (11:21 +0200)]
microblaze: Fix issue with msi compilation
There are some missing references to linux/irq.h.
Warning log:
arch/microblaze/pci/msi.c: In function 'create_irq':
arch/microblaze/pci/msi.c:59:2: error: implicit declaration of function
'dynamic_irq_init' [-Werror=implicit-function-declaration]
dynamic_irq_init(irq);
^
arch/microblaze/pci/msi.c: In function 'destroy_irq':
arch/microblaze/pci/msi.c:76:2: error: implicit declaration of function
'dynamic_irq_cleanup' [-Werror=implicit-function-declaration]
dynamic_irq_cleanup(irq);
^
arch/microblaze/pci/msi.c: At top level:
arch/microblaze/pci/msi.c:107:15: error: variable 'xilinx_msi_chip' has
initializer but incomplete type
static struct irq_chip xilinx_msi_chip = {
^
arch/microblaze/pci/msi.c:108:3: error: unknown field 'name' specified
in initializer
.name = "PCI-MSI",
^
arch/microblaze/pci/msi.c:108:3: warning: excess elements in struct
initializer [enabled by default]
arch/microblaze/pci/msi.c:108:3: warning: (near initialization for
'xilinx_msi_chip') [enabled by default]
arch/microblaze/pci/msi.c:109:3: error: unknown field 'irq_ack'
specified in initializer
.irq_ack = xilinx_msi_nop,
^
arch/microblaze/pci/msi.c:109:3: warning: excess elements in struct
initializer [enabled by default]
arch/microblaze/pci/msi.c:109:3: warning: (near initialization for
'xilinx_msi_chip') [enabled by default]
arch/microblaze/pci/msi.c:110:3: error: unknown field 'irq_enable'
specified in initializer
.irq_enable = unmask_msi_irq,
^
...
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Currently the trafgen driver can only be enabled if target
architecutre is Microblaze. This patch adds ARCH_ZYNQ
option to the kconfig so that users can test this on
zynq platform also.
Also enable this driver for default zynq defconfig.
Signed-off-by: Kedareswara rao Appana <appanad@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
Some PM features are enabled in zynq_pm_late_init() that are independent
of suspend support. Hence the code is refactored to always do the common
PM init.
Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
ARM: zynq: Have DDR self-refresh and clock stop always on
Those features are controlled by HW and they can be always on. If the
DDR becomes idle it will leverage those low-power modes automatically
and also resume operation on new requests.
Latency penalties should be negligible.
Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
ARM: zynq: Don't copy suspend stub to OCM on every suspend
With the migration to the OCM allocator, the suspend code allocates and
holds OCM space throughout the whole run-time. Hence, copying the OCM
stub to OCM can be reduced to being done once only.
Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
With SCU standby enabled, SCU CLK will be turned off when all processors
are in WFI mode. And the clock will be turned on when any processor
leaves WFI mode.
This behavior should be preferable in terms of power efficiency of
system idle. So let's set the SCU standby bit to enable the support in
function scu_enable().
Cortex-A9 earlier than r2p0 has no standby bit in SCU, so we need to
skip setting the bit for those.
Signed-off-by: Shawn Guo <shawn.guo@freescale.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>