On Wed, Mar 26, 2014 at 03:09:18PM +0100, Sebastian Hesselbarth wrote:
> On 03/26/2014 02:55 PM, Andrew Lunn wrote:
> >>* Martin Waschbuesch <mar...@waschbuesch.de> [2013-07-04 19:12]:
> >>>Package: src:linux Version: 3.2.46-1 Severity: normal Tags:
> >>>upstream patch
> >>>
> >>>Dear Maintainer,
> >>>
> >>>On my QNAP TS-412, after a clean install of Wheezy, the kernel
> >>>fails to bring up all sata ports (using Marvell 88SX7042 via
> >>>sata_mv driver) before md/raid tries to assemble the array. The
> >>>same disks/array work in a different model (TS-410) and the
> >>>drives/array from said TS-410 also fail in my TS-412. At the same
> >>>time, using the original QNAP firmware, everything works as
> >>>expected.
> >
> >I _guess_ the real problem here is the power supply. It cannot
> >supply enough power to get all the drives spinning if they all start
> >at the same time. Many of the multi-bay NAS boxes have GPIO lines
> >which are used to individually power up each driver in a staggered
> >way. The QNAP kernel patch is doing something similar. However in its
> >current form it cannot be accepted. This delay needs to be made
> >conditional and only applied on hardware with a weak power supply.
> >
> >I will take a look at the code and see how the platform can pass a
> >flag to the driver that it needs to stagger port initialization.
> 
> Actually, the code in question is not SoC's mvsata but PCI's mvsata,
> I guess.

Yes, it is a 4 port controller on the PCI bus, not the two ports in
the SoC. Same problem though.

It also seems like this is not the first board with this problem:

drivers/ata/libata-core.c:

static void async_port_probe(void *data, async_cookie_t cookie)
{
        struct ata_port *ap = data;

        /*
         * If we're not allowed to scan this host in parallel,
         * we need to wait until all previous scans have completed
         * before going further.
         * Jeff Garzik says this is only within a controller, so we
         * don't need to wait for port 0, only for later ports.
         */
        if (!(ap->host->flags & ATA_HOST_PARALLEL_SCAN) && ap->port_no != 0)
                async_synchronize_cookie(cookie);

I need to check if sata_mv is using this code, and what flags it has
set.

        Andrew


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to