From: cbouatmailru@gmail.com (Anton Vorontsov)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 1/1] ARM: cns3xxx: ahci: Fixup for softwreset failures with direct connected disks with CONFIG_SATA_PMP enabled.
Date: Mon, 20 Dec 2010 20:02:17 +0300 [thread overview]
Message-ID: <20101220170217.GA1333@oksana.dev.rtsoft.ru> (raw)
In-Reply-To: <1291481021-23317-1-git-send-email-mkl0301@gmail.com>
On Sun, Dec 05, 2010 at 12:43:41AM +0800, mkl0301 at gmail.com wrote:
[...]
Thanks for the patch!
There are few issues though.
> +static int cns3xxx_ahci_init(struct device *dev, void __iomem *addr)
> +{
> + u32 tmp;
> +
> + DPRINTK("ENTER\n");
> +
> + tmp = __raw_readl(MISC_SATA_POWER_MODE);
> + tmp |= 0x1 << 16; /* Disable SATA PHY 0 from SLUMBER Mode */
> + tmp |= 0x1 << 17; /* Disable SATA PHY 1 from SLUMBER Mode */
> + __raw_writel(tmp, MISC_SATA_POWER_MODE);
> +
> + /* Enable SATA PHY */
> + cns3xxx_pwr_power_up(0x1 << PM_PLL_HM_PD_CTRL_REG_OFFSET_SATA_PHY0);
> + cns3xxx_pwr_power_up(0x1 << PM_PLL_HM_PD_CTRL_REG_OFFSET_SATA_PHY1);
> +
> + /* Enable SATA Clock */
> + cns3xxx_pwr_clk_en(0x1 << PM_CLK_GATE_REG_OFFSET_SATA);
> +
> + /* De-Asscer SATA Reset */
> + cns3xxx_pwr_soft_rst(CNS3XXX_PWR_SOFTWARE_RST(SATA));
> +
> + return 0;
> +}
> +
[...]
> -void __init cns3xxx_ahci_init(void)
> -{
> - u32 tmp;
> -
> - tmp = __raw_readl(MISC_SATA_POWER_MODE);
> - tmp |= 0x1 << 16; /* Disable SATA PHY 0 from SLUMBER Mode */
> - tmp |= 0x1 << 17; /* Disable SATA PHY 1 from SLUMBER Mode */
> - __raw_writel(tmp, MISC_SATA_POWER_MODE);
> -
> - /* Enable SATA PHY */
> - cns3xxx_pwr_power_up(0x1 << PM_PLL_HM_PD_CTRL_REG_OFFSET_SATA_PHY0);
> - cns3xxx_pwr_power_up(0x1 << PM_PLL_HM_PD_CTRL_REG_OFFSET_SATA_PHY1);
> -
> - /* Enable SATA Clock */
> - cns3xxx_pwr_clk_en(0x1 << PM_CLK_GATE_REG_OFFSET_SATA);
> -
> - /* De-Asscer SATA Reset */
> - cns3xxx_pwr_soft_rst(CNS3XXX_PWR_SOFTWARE_RST(SATA));
> -
> - platform_device_register(&cns3xxx_ahci_pdev);
> -}
This is not good because cns3xxx_pwr_*() calls aren't thread-safe.
We must use them only from the "single-threaded" platform code,
i.e. very early.
Once we add proper clocks (clkapi) and power management (regulators)
support for CNS3xxx, we may move this into ahci->init() callback.
Plus, unfortunately this patch breaks build when AHCI_PLATFORM is
set to =m.
arch/arm/mach-cns3xxx/built-in.o: In function 'cns3xxx_ahci_softreset':
cns3420vb.c:(.text+0x36c): undefined reference to 'ahci_do_softreset'
cns3420vb.c:(.text+0x390): undefined reference to 'ahci_do_softreset'
cns3420vb.c:(.text+0x3a0): undefined reference to 'ahci_check_ready'
arch/arm/mach-cns3xxx/built-in.o:(.data+0x35c): undefined reference to 'ahci_ops'
make: *** [.tmp_vmlinux1] Error 1
next prev parent reply other threads:[~2010-12-20 17:02 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-12-04 16:43 [PATCH 1/1] ARM: cns3xxx: ahci: Fixup for softwreset failures with direct connected disks with CONFIG_SATA_PMP enabled mkl0301 at gmail.com
2010-12-20 17:02 ` Anton Vorontsov [this message]
2010-12-22 9:27 ` Lin Mac
2010-12-22 11:58 ` Anton Vorontsov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20101220170217.GA1333@oksana.dev.rtsoft.ru \
--to=cbouatmailru@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).