Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7de32445 authored by Jaedon Shin's avatar Jaedon Shin Committed by Tejun Heo
Browse files

ata: ahci_brcmstb: disable NCQ for MIPS-based platforms



The most MIPS-based platforms need to disable NCQ while have the NCQ
capability in HOST_CAP, and several ARM-based platforms (eg. BCM7349A0,
BCM7445A0, BCM7445B0) need to disable too.

Signed-off-by: default avatarJaedon Shin <jaedon.shin@gmail.com>
Tested-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
Acked-by: default avatarBrian Norris <computersforpeace@gmail.com>
parent 7f64d642
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -69,10 +69,15 @@
	(DATA_ENDIAN << DMADESC_ENDIAN_SHIFT) |		\
	(MMIO_ENDIAN << MMIO_ENDIAN_SHIFT))

enum brcm_ahci_quirks {
	BRCM_AHCI_QUIRK_NO_NCQ		= BIT(0),
};

struct brcm_ahci_priv {
	struct device *dev;
	void __iomem *top_ctrl;
	u32 port_mask;
	u32 quirks;
};

static const struct ata_port_info ahci_brcm_port_info = {
@@ -256,6 +261,9 @@ static int brcm_ahci_probe(struct platform_device *pdev)
	if (IS_ERR(priv->top_ctrl))
		return PTR_ERR(priv->top_ctrl);

	if (of_device_is_compatible(dev->of_node, "brcm,bcm7425-ahci"))
		priv->quirks |= BRCM_AHCI_QUIRK_NO_NCQ;

	brcm_sata_init(priv);

	priv->port_mask = brcm_ahci_get_portmask(pdev, priv);
@@ -273,6 +281,9 @@ static int brcm_ahci_probe(struct platform_device *pdev)
	if (ret)
		return ret;

	if (priv->quirks & BRCM_AHCI_QUIRK_NO_NCQ)
		hpriv->flags |= AHCI_HFLAG_NO_NCQ;

	ret = ahci_platform_init_host(pdev, hpriv, &ahci_brcm_port_info,
				      &ahci_platform_sht);
	if (ret)