mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 10:00:17 +00:00
ata: ahci_brcm: Allow optional reset controller to be used
commit 2b2c47d9e1 upstream.
On BCM63138, we need to reset the AHCI core prior to start utilizing it,
grab the reset controller device cookie and do that.
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
d6d821712b
commit
46a746f026
@@ -25,6 +25,7 @@
|
|||||||
#include <linux/module.h>
|
#include <linux/module.h>
|
||||||
#include <linux/of.h>
|
#include <linux/of.h>
|
||||||
#include <linux/platform_device.h>
|
#include <linux/platform_device.h>
|
||||||
|
#include <linux/reset.h>
|
||||||
#include <linux/string.h>
|
#include <linux/string.h>
|
||||||
|
|
||||||
#include "ahci.h"
|
#include "ahci.h"
|
||||||
@@ -94,6 +95,7 @@ struct brcm_ahci_priv {
|
|||||||
u32 port_mask;
|
u32 port_mask;
|
||||||
u32 quirks;
|
u32 quirks;
|
||||||
enum brcm_ahci_version version;
|
enum brcm_ahci_version version;
|
||||||
|
struct reset_control *rcdev;
|
||||||
};
|
};
|
||||||
|
|
||||||
static inline u32 brcm_sata_readreg(void __iomem *addr)
|
static inline u32 brcm_sata_readreg(void __iomem *addr)
|
||||||
@@ -433,6 +435,11 @@ static int brcm_ahci_probe(struct platform_device *pdev)
|
|||||||
if (IS_ERR(priv->top_ctrl))
|
if (IS_ERR(priv->top_ctrl))
|
||||||
return PTR_ERR(priv->top_ctrl);
|
return PTR_ERR(priv->top_ctrl);
|
||||||
|
|
||||||
|
/* Reset is optional depending on platform */
|
||||||
|
priv->rcdev = devm_reset_control_get(&pdev->dev, "ahci");
|
||||||
|
if (!IS_ERR_OR_NULL(priv->rcdev))
|
||||||
|
reset_control_deassert(priv->rcdev);
|
||||||
|
|
||||||
if ((priv->version == BRCM_SATA_BCM7425) ||
|
if ((priv->version == BRCM_SATA_BCM7425) ||
|
||||||
(priv->version == BRCM_SATA_NSP)) {
|
(priv->version == BRCM_SATA_NSP)) {
|
||||||
priv->quirks |= BRCM_AHCI_QUIRK_NO_NCQ;
|
priv->quirks |= BRCM_AHCI_QUIRK_NO_NCQ;
|
||||||
|
|||||||
Reference in New Issue
Block a user