Commit Graph

224 Commits (fbd4214bb0727268aa535af5b600d38939ec8dbc)

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
10 years ago
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
10 years ago
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
10 years ago
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
10 years ago
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
10 years ago
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
10 years ago
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
10 years ago
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
10 years ago
John Crispin 118534ea39 oxnas: use libata ledtrig support for kd20 hdd leds
Signed-off-by: Daniel Golle <daniel@makrotopia.org>

SVN-Revision: 43675
10 years ago
John Crispin 1701a9a4b9 oxnas: clean up default package selection
Signed-off-by: Daniel Golle <daniel@makrotopia.org>

SVN-Revision: 43673
10 years ago
John Crispin 7068b7ed1c oxnas: build S-ATA driver as a module
From: Daniel Golle <daniel@makrotopia.org>

SVN-Revision: 43665
10 years ago
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
10 years ago
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
10 years ago
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
10 years ago
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
10 years ago
Felix Fietkau 9a495f6bbb kernel: refresh patches
Signed-off-by: Felix Fietkau <nbd@openwrt.org>

SVN-Revision: 43564
10 years ago
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
10 years ago
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
10 years ago
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
10 years ago
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
10 years ago
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
10 years ago
John Crispin ad1592e02c oxnas: change visible board name
Signed-off-by: Daniel Golle <daniel@makrotopia.org>

SVN-Revision: 43475
10 years ago
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
10 years ago
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
10 years ago