Commit Graph

224 Commits

Author SHA1 Message Date
Felix Fietkau
2ef587a8fc oxnas: clk-oxnas: rework pllb enable function
kernel lock debugging unveiled that we should not call
of_reset_control_get inside a clock's enable operation (see below)

move of_reset_control_* previously used in pllb_clk_enable to new
pllb_clk_prepare and pllb_clk_unprepare functions.
use a container to carry runtime information.

------------[ cut here ]------------
WARNING: CPU: 0 PID: 1 at kernel/locking/lockdep.c:2742 lockdep_trace_alloc+0xb8/0xfc()
DEBUG_LOCKS_WARN_ON(irqs_disabled_flags(flags))
Modules linked in:
CPU: 0 PID: 1 Comm: swapper/0 Not tainted 3.14.26 #6
[<c001a6ac>] (unwind_backtrace) from [<c0016dec>] (show_stack+0x10/0x14)
[<c0016dec>] (show_stack) from [<c0194f68>] (dump_stack+0x7c/0x94)
[<c0194f68>] (dump_stack) from [<c0021b50>] (warn_slowpath_common+0x68/0x8c)
[<c0021b50>] (warn_slowpath_common) from [<c0021ba4>] (warn_slowpath_fmt+0x30/0x40)
[<c0021ba4>] (warn_slowpath_fmt) from [<c0061b30>] (lockdep_trace_alloc+0xb8/0xfc)
[<c0061b30>] (lockdep_trace_alloc) from [<c00cb740>] (kmem_cache_alloc+0x1c/0xf8)
[<c00cb740>] (kmem_cache_alloc) from [<c01d33c8>] (of_reset_control_get+0xe8/0x12c)
[<c01d33c8>] (of_reset_control_get) from [<c0269228>] (pllb_clk_enable+0x14/0xbc)
[<c0269228>] (pllb_clk_enable) from [<c0265738>] (__clk_enable+0x54/0xa0)
[<c0265738>] (__clk_enable) from [<c0265acc>] (clk_enable+0x18/0x2c)
[<c0265acc>] (clk_enable) from [<c04325f8>] (oxnas_pcie_probe+0x3b8/0x6a0)
[<c04325f8>] (oxnas_pcie_probe) from [<c01f2510>] (platform_drv_probe+0x18/0x48)
[<c01f2510>] (platform_drv_probe) from [<c01f1070>] (driver_probe_device+0xd8/0x24c)
[<c01f1070>] (driver_probe_device) from [<c01f1298>] (__driver_attach+0x70/0x94)
[<c01f1298>] (__driver_attach) from [<c01ef728>] (bus_for_each_dev+0x4c/0x98)
[<c01ef728>] (bus_for_each_dev) from [<c01f0818>] (bus_add_driver+0xcc/0x1e8)
[<c01f0818>] (bus_add_driver) from [<c01f169c>] (driver_register+0xa0/0xe8)
[<c01f169c>] (driver_register) from [<c01f2568>] (platform_driver_probe+0x20/0xa4)
[<c01f2568>] (platform_driver_probe) from [<c0013a3c>] (do_one_initcall+0x90/0x140)
[<c0013a3c>] (do_one_initcall) from [<c0421d38>] (kernel_init_freeable+0x1e4/0x2c0)
[<c0421d38>] (kernel_init_freeable) from [<c000c214>] (kernel_init+0x8/0x104)
[<c000c214>] (kernel_init) from [<c0008768>] (ret_from_fork+0x14/0x2c)
---[ end trace 5f17ed2f61e0683f ]---

Signed-off-by: Daniel Golle <daniel@makrotopia.org>

SVN-Revision: 43787
2014-12-27 13:03:12 +00:00
Felix Fietkau
93192e65e8 oxnas: sata_oxnas: make irq handler more readable
safed one level of indention by using 'continue' instead of a
lengthy if-clause.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
v2: use logic-AND instead of '?' operator when checking for hw bug 6320

SVN-Revision: 43768
2014-12-22 20:47:10 +00:00
Felix Fietkau
74a9e1c1b0 oxnas: sata_oxnas: refactoring phase 2
- replaced // comments by /* comments */
 - added line-breaks where needed
 - fixed white-space according to kernel style
 - fixed some obvious spelling mistakes in comments and printks
 - removed some unneeded left-overs imported from vendor code-base
 - replaced printk(...) by libata macros where possible

Signed-off-by: Daniel Golle <daniel@makrotopia.org>

SVN-Revision: 43767
2014-12-22 20:47:01 +00:00
Felix Fietkau
feda47451f oxnas: sata_oxnas: refactoring phase 1
locking for 2nd port and hwraid was added from vendor's GPL code which
doesn't comply with current kernel coding style.

 - moved all global variables into host_priv
 - renamed locks
 - sanetized acquire() and release() parameter list

Signed-off-by: Daniel Golle <daniel@makrotopia.org>

SVN-Revision: 43766
2014-12-22 20:46:49 +00:00
Felix Fietkau
3113bf4cb8 oxnas: refresh kernel config-3.1[48]
and no longer compile-in ext4 filesystem now that sata_oxnas is
also built as a module.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>

SVN-Revision: 43765
2014-12-22 20:46:41 +00:00
John Crispin
019ea725aa add "preinit_regular" diag.sh set_state argument
This new argument is used right after starting regular preinit (which
happens if failsafe wasn't triggered). The main purpose of "preinit"
argument is to indicate that failsafe can be triggered, however we were
missing a way to inform user that we don't wait for a trigger anymore.
With this change it's clear when failsafe mode can be triggered.

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>

SVN-Revision: 43715
2014-12-15 10:37:00 +00:00
John Crispin
10dbdb28d7 oxnas: fix gpio-fan on kd20
define speed-map and include kmod-hwmon-gpiofan in kd20 profile

Signed-off-by: Daniel Golle <daniel@makrotopia.org>

SVN-Revision: 43678
2014-12-13 08:04:54 +00:00
John Crispin
9013a144fd oxnas: also make use of the GPIO poweroff driver
Works great to power-off the kd20 ;)

Signed-off-by: Daniel Golle <daniel@makrotopia.org>

SVN-Revision: 43677
2014-12-13 08:02:52 +00:00
John Crispin
118534ea39 oxnas: use libata ledtrig support for kd20 hdd leds
Signed-off-by: Daniel Golle <daniel@makrotopia.org>

SVN-Revision: 43675
2014-12-12 20:24:33 +00:00
John Crispin
1701a9a4b9 oxnas: clean up default package selection
Signed-off-by: Daniel Golle <daniel@makrotopia.org>

SVN-Revision: 43673
2014-12-12 20:24:13 +00:00
John Crispin
7068b7ed1c oxnas: build S-ATA driver as a module
From: Daniel Golle <daniel@makrotopia.org>

SVN-Revision: 43665
2014-12-12 16:17:13 +00:00
John Crispin
58a4113c5e oxnas: use u-boot.bin in KDIR
This fixes building *u-boot-initramfs.bin images using ImageBuilder

Signed-off-by: Daniel Golle <daniel@makrotopia.org>

SVN-Revision: 43663
2014-12-12 16:16:57 +00:00
John Crispin
ad35bcc41e oxnas: use ARM BCJ filter for XZ decompression
Restoring the config for kernel 3.14 didn't contain that change already
made to config-3.18.
It is needed to make squashfs in the kernel match the compression settings
for ARCH=arm in the framework.
If set to ARMTHUMB, boot fails due to squashfs being unreadable if the
filesystem was generated for wth ARM BCJ filter.

in include/image.mk:    BCJ_FILTER:=-Xbcj $(LINUX_KARCH)
Thus the ARM filter is used for all ARM targets.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>

SVN-Revision: 43640
2014-12-11 20:41:51 +00:00
John Crispin
9432cbd577 oxnas: add support for 2nd S-ATA port to sata_oxnas driver
similar to mv_sata, use nr-ports attribute from device tree.
import and adapt locking code from vendor GPL sources.
add dma controller handling, it may be used in future to avoid
full core resets similar to the vendor SDK's "progressive cleanup"
function.

this is still very dirty and aimed to first of all do things
quite exactly like the reference code. and it somehow works.
obviously there is lots of room for improvement :)

Signed-off-by: Daniel Golle <daniel@makrotopia.org>

SVN-Revision: 43598
2014-12-10 15:51:07 +00:00
John Crispin
1fa7c8587d oxnas: add copyright header to sata_oxnas
sata_oxnas.c is obviously a refactored version of sata_ox820.c
which does contain this header.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>

SVN-Revision: 43597
2014-12-10 15:51:00 +00:00
Felix Fietkau
9a495f6bbb kernel: refresh patches
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 43564
2014-12-08 12:04:25 +00:00
John Crispin
dcc20e525b oxnas: switch back to kernel 3.14
3.18 still got problems with stuck reboots if rootfs is ubifs...

Signed-off-by: Daniel Golle <daniel@makrotopia.org>

SVN-Revision: 43521
2014-12-05 00:20:50 +00:00
John Crispin
e553dfc356 oxnas: re-add support for kernel 3.14
This reverts commit c81ddddde5fd193802d511b42eb7b108aac17136 on
https://gitorious.org/openwrt-oxnas/openwrt-oxnas.git
which removed patches and config for 3.14.

[arm_introduce-dma-fiq-irq-broadcast patch was renamed to match 3.18]

Signed-off-by: Daniel Golle <daniel@makrotopia.org>

SVN-Revision: 43520
2014-12-05 00:20:41 +00:00
John Crispin
a122c1c9c9 oxnas: switch CRC32 implementation to SLICEBY8
similar to what was observed on kirkwood this significantly accelerates
btrfs write operations.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>

SVN-Revision: 43498
2014-12-02 15:25:28 +00:00
John Crispin
9430e86b61 oxnas/kd20: add usb-storage to default package set
KD20 got a built-in card-reader wired to the USB-3 root-hub.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>

SVN-Revision: 43497
2014-12-02 15:25:14 +00:00
John Crispin
46814be2a8 oxnas/kd20: use gpio-beeper
gpio-beeper module was added to the kernel recently.
Make use of it to drive the piezoelectric buzzer of the kd20.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>

SVN-Revision: 43496
2014-12-02 15:25:09 +00:00
John Crispin
ad1592e02c oxnas: change visible board name
Signed-off-by: Daniel Golle <daniel@makrotopia.org>

SVN-Revision: 43475
2014-12-01 16:15:37 +00:00
John Crispin
aa9141046f oxnas: ehci: rename vendor prefix plxtch to plxtech
it was changed in DTS by commit
oxnas-target: fix typo in OX820 device-tree

Signed-off-by: Daniel Golle <daniel@makrotopia.org>

SVN-Revision: 43474
2014-12-01 16:15:30 +00:00
John Crispin
72b58f2eb1 add new target 'oxnas'
This is the oxnas target previously developed at
http://gitorious.org/openwrt-oxnas
Basically, this consolidates the changes and addtionas from
http://github.org/kref/linux-oxnas
into a new OpenWrt hardware target 'oxnas' adding support for
 PLX Technology NAS7820/NAS7821/NAS7825/...
formally known as
 Oxford Semiconductor OXE810SE/OXE815/OX820/...

For now there are 4 supported boards:
Cloud Engines Pogoplug V3 (without PCIe)
 fully supported

Cloud Engines Pogoplug Pro (with PCIe)
 fully supported

MitraStar STG-212
 aka ZyXEL NSA-212,
 aka Medion Akoya P89625 / P89636 / P89626 / P89630,
 aka Medion MD 86407 / MD 86805 / MD 86517 / MD 86587
 fully supported, see http://wiki.openwrt.org/toh/medion/md86587

Shuttle KD-20
 partially supported (S-ATA driver lacks support for 2nd port)

Signed-off-by: Daniel Golle <daniel@makrotopia.org>

SVN-Revision: 43388
2014-11-26 09:00:08 +00:00