Linux ATA/IDE development
 help / color / mirror / Atom feed
* Re: [PATCH v4 2/2] dt-bindings: ata: add DT bindings for MediaTek SATA controller
From: Tejun Heo @ 2017-08-29 14:24 UTC (permalink / raw)
  To: Ryder Lee
  Cc: Hans de Goede, Rob Herring, devicetree, linux-mediatek,
	linux-kernel, linux-ide, Long Cheng
In-Reply-To: <0ac0ff921914acd95b7b5906ca435571e55c355f.1503018631.git.ryder.lee@mediatek.com>

On Fri, Aug 18, 2017 at 09:13:08AM +0800, Ryder Lee wrote:
> Add DT bindings for the onboard SATA controller present on the MediaTek
> SoCs.
> 
> Signed-off-by: Ryder Lee <ryder.lee@mediatek.com>
> Acked-by: Rob Herring <robh@kernel.org>

Applied to libata/for-4.14.

Thanks.

-- 
tejun

^ permalink raw reply

* Re: boot failure with 4.13.0-rc6 due to ATA errors
From: Christoph Hellwig @ 2017-08-29 12:42 UTC (permalink / raw)
  To: Tejun Heo; +Cc: David Ahern, linux-ide, LKML, Christoph Hellwig, Robert Elliott
In-Reply-To: <20170828212225.GB491396@devbig577.frc2.facebook.com>

On Mon, Aug 28, 2017 at 02:22:25PM -0700, Tejun Heo wrote:
> Hello,
> 
> On Mon, Aug 28, 2017 at 02:26:52PM -0600, David Ahern wrote:
> > On 8/28/17 1:59 PM, Tejun Heo wrote:
> > > Can you please verify whether 818831c8b22f ("libata: implement
> > > SECURITY PROTOCOL IN/OUT") is the culprit?  ie. try to boot the commit
> > > to verify that the problem is there, and try the one prior?
> > 
> > That commit is the problem. a0fd2454a36ffab2ce39b3a91c1385a5f98e63f0
> > works fine.
> 
> Christoph, is there anything we can do to further gate issuing of the
> offending command?  Otherwise, we might have to go for whitelist
> instead.

We could try to check the IDENTIFY DEVICE word, but given that it has
a dual meaning in older spec versions I don't really like the idea
either.  Untested patch below as I'm not near my OPAL capable drive.

Also most recent ATA features seem to be keyed off a log page of some
sort, so we'll run into more problems like this.

---
>From e661047ec3a25587648b07c02a687a7dac778f3b Mon Sep 17 00:00:00 2001
From: Christoph Hellwig <hch@lst.de>
Date: Tue, 29 Aug 2017 14:35:50 +0200
Subject: libata: check for trusted computing in IDENTIFY DEVICE data

ATA-8 and later mirrors the TRUSTED COMPUTING SUPPORTED bit in word 48 of
the IDENTIFY DEVICE data.  Check this before issuing a READ LOG PAGE
command to avoid issues with buggy devices.  The only downside is that
we can't support Security Send / Receive for a device with an older
revision due to the conflicting use of this field in earlier
specifications.

Signed-off-by: Christoph Hellwig <hch@lst.de>
---
 drivers/ata/libata-core.c |  3 +++
 include/linux/ata.h       | 10 +++++++++-
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index 697f5f896b19..ca57b03ab950 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -2413,6 +2413,9 @@ static void ata_dev_config_trusted(struct ata_device *dev)
 	u64 trusted_cap;
 	unsigned int err;
 
+	if (!ata_id_has_trusted(dev->id))
+		return;
+
 	if (!ata_identify_page_supported(dev, ATA_LOG_SECURITY)) {
 		ata_dev_warn(dev,
 			     "Security Log not supported\n");
diff --git a/include/linux/ata.h b/include/linux/ata.h
index e65ae4b2ed48..c7a353825450 100644
--- a/include/linux/ata.h
+++ b/include/linux/ata.h
@@ -60,7 +60,8 @@ enum {
 	ATA_ID_FW_REV		= 23,
 	ATA_ID_PROD		= 27,
 	ATA_ID_MAX_MULTSECT	= 47,
-	ATA_ID_DWORD_IO		= 48,
+	ATA_ID_DWORD_IO		= 48,	/* before ATA-8 */
+	ATA_ID_TRUSTED		= 48,	/* ATA-8 and later */
 	ATA_ID_CAPABILITY	= 49,
 	ATA_ID_OLD_PIO_MODES	= 51,
 	ATA_ID_OLD_DMA_MODES	= 52,
@@ -889,6 +890,13 @@ static inline bool ata_id_has_dword_io(const u16 *id)
 	return id[ATA_ID_DWORD_IO] & (1 << 0);
 }
 
+static inline bool ata_id_has_trusted(const u16 *id)
+{
+	if (ata_id_major_version(id) <= 7)
+		return false;
+	return id[ATA_ID_TRUSTED] & (1 << 0);
+}
+
 static inline bool ata_id_has_unload(const u16 *id)
 {
 	if (ata_id_major_version(id) >= 7 &&
-- 
2.11.0


^ permalink raw reply related

* Re: [PATCH v4 1/2] ata: mediatek: add support for MediaTek SATA controller
From: Ryder Lee @ 2017-08-29  0:59 UTC (permalink / raw)
  To: Tejun Heo
  Cc: Hans de Goede, Rob Herring, devicetree, linux-mediatek,
	linux-kernel, linux-ide, Long Cheng
In-Reply-To: <20170828175528.GY491396@devbig577.frc2.facebook.com>

On Mon, 2017-08-28 at 10:55 -0700, Tejun Heo wrote:
> On Fri, Aug 18, 2017 at 09:13:07AM +0800, Ryder Lee wrote:
> > This adds support the AHCI-compliant Serial ATA controller present
> > on MediaTek SoCs.
> > 
> > Signed-off-by: Ryder Lee <ryder.lee@mediatek.com>
> > Acked-by: Tejun Heo <tj@kernel.org>
> 
> Applied to libata/for-4.14.  If you want me to take the dt patch too,
> please let me know.
> 
> Thanks.
> 

Yes, please take the dt patch through your tree as well.

Thanks,
Ryder


^ permalink raw reply

* Re: [PATCH] pata_octeon_cf: use of_property_read_{bool|u32}()
From: David Daney @ 2017-08-28 21:52 UTC (permalink / raw)
  To: Sergei Shtylyov, Bartlomiej Zolnierkiewicz, Tejun Heo,
	open list:LIBATA PATA DRIVERS
  Cc: linux-mips
In-Reply-To: <20170827195613.904715064@cogentembedded.com>

On 08/27/2017 12:55 PM, Sergei Shtylyov wrote:
> The Octeon CF driver basically  open-codes of_property_read_{bool|u32}()
> using  of_{find|get}_property() calls in its  probe() method.  Using the
> modern DT APIs saves 2 LoCs and 16 bytes of object code (MIPS gcc 3.4.3).
> 
> Signed-off-by: Sergei Shtylyov<sergei.shtylyov@cogentembedded.com>

It still works with this applied, so:

Acked-by: David Daney <david.daney@cavium.com>

> 
> ---
>   drivers/ata/pata_octeon_cf.c |   10 ++++------
>   1 file changed, 4 insertions(+), 6 deletions(-)
> 
> Index: libata/drivers/ata/pata_octeon_cf.c
> ===================================================================
> --- libata.orig/drivers/ata/pata_octeon_cf.c
> +++ libata/drivers/ata/pata_octeon_cf.c
> @@ -840,7 +840,6 @@ static int octeon_cf_probe(struct platfo
>   	struct property *reg_prop;
>   	int n_addr, n_size, reg_len;
>   	struct device_node *node;
> -	const void *prop;
>   	void __iomem *cs0;
>   	void __iomem *cs1 = NULL;
>   	struct ata_host *host;
> @@ -850,7 +849,7 @@ static int octeon_cf_probe(struct platfo
>   	void __iomem *base;
>   	struct octeon_cf_port *cf_port;
>   	int rv = -ENOMEM;
> -
> +	u32 bus_width;
>   
>   	node = pdev->dev.of_node;
>   	if (node == NULL)
> @@ -860,11 +859,10 @@ static int octeon_cf_probe(struct platfo
>   	if (!cf_port)
>   		return -ENOMEM;
>   
> -	cf_port->is_true_ide = (of_find_property(node, "cavium,true-ide", NULL) != NULL);
> +	cf_port->is_true_ide = of_property_read_bool(node, "cavium,true-ide");
>   
> -	prop = of_get_property(node, "cavium,bus-width", NULL);
> -	if (prop)
> -		is_16bit = (be32_to_cpup(prop) == 16);
> +	if (of_property_read_u32(node, "cavium,bus-width", &bus_width) == 0)
> +		is_16bit = (bus_width == 16);
>   	else
>   		is_16bit = false;
>   
> 
> 
> 


^ permalink raw reply

* Re: boot failure with 4.13.0-rc6 due to ATA errors
From: Tejun Heo @ 2017-08-28 21:22 UTC (permalink / raw)
  To: David Ahern; +Cc: linux-ide, LKML, Christoph Hellwig
In-Reply-To: <37033f6d-2ad0-7817-10b5-cbd7ff565624@gmail.com>

Hello,

On Mon, Aug 28, 2017 at 02:26:52PM -0600, David Ahern wrote:
> On 8/28/17 1:59 PM, Tejun Heo wrote:
> > Can you please verify whether 818831c8b22f ("libata: implement
> > SECURITY PROTOCOL IN/OUT") is the culprit?  ie. try to boot the commit
> > to verify that the problem is there, and try the one prior?
> 
> That commit is the problem. a0fd2454a36ffab2ce39b3a91c1385a5f98e63f0
> works fine.

Christoph, is there anything we can do to further gate issuing of the
offending command?  Otherwise, we might have to go for whitelist
instead.

Thanks.

-- 
tejun

^ permalink raw reply

* Re: boot failure with 4.13.0-rc6 due to ATA errors
From: David Ahern @ 2017-08-28 20:26 UTC (permalink / raw)
  To: Tejun Heo; +Cc: linux-ide, LKML, Christoph Hellwig
In-Reply-To: <20170828195916.GA491396@devbig577.frc2.facebook.com>

On 8/28/17 1:59 PM, Tejun Heo wrote:
> Can you please verify whether 818831c8b22f ("libata: implement
> SECURITY PROTOCOL IN/OUT") is the culprit?  ie. try to boot the commit
> to verify that the problem is there, and try the one prior?

That commit is the problem. a0fd2454a36ffab2ce39b3a91c1385a5f98e63f0
works fine.

^ permalink raw reply

* Re: boot failure with 4.13.0-rc6 due to ATA errors
From: Tejun Heo @ 2017-08-28 19:59 UTC (permalink / raw)
  To: David Ahern; +Cc: linux-ide, LKML, Christoph Hellwig
In-Reply-To: <3117ae58-d432-101e-3f0b-68d72fdee28b@gmail.com>

(cc'ing Christoph)

On Mon, Aug 28, 2017 at 12:40:39PM -0600, David Ahern wrote:
> Not sure why mailing list to direct this bug report to, so starting with
> libata based on the error messages.
> 
> Some where between v4.12 and 4.13.0-rc6 a Celestica redstone switch
> fails to boot due to ATA errors:
> 
> [    9.185203] ata1.00: failed to set xfermode (err_mask=0x40)
> [    9.500825] ata1.00: revalidation failed (errno=-5)
> [   20.449205] ata1.00: failed to set xfermode (err_mask=0x40)
> 
> I just tried Linus' top of tree (cc4a41fe5541) and it still fails. With
> v4.12 the same switch boots and 'dmesg | grep ata' shows:
> 
> [    0.129080] libata version 3.00 loaded.
> [    1.016520] ata1: SATA max UDMA/133 abar m2048@0xdffce000 port
> 0xdffce100 irq 27
> [    1.016524] ata2: SATA max UDMA/133 abar m2048@0xdffce000 port
> 0xdffce180 irq 27
> [    1.016528] ata3: SATA max UDMA/133 abar m2048@0xdffce000 port
> 0xdffce200 irq 27
> [    1.016531] ata4: SATA max UDMA/133 abar m2048@0xdffce000 port
> 0xdffce280 irq 27
> [    1.028623] ata5: SATA max UDMA/133 abar m2048@0xdffcd000 port
> 0xdffcd100 irq 28
> [    1.028627] ata6: SATA max UDMA/133 abar m2048@0xdffcd000 port
> 0xdffcd180 irq 28
> [    1.326767] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
> [    1.328646] ata2: SATA link down (SStatus 0 SControl 300)
> [    1.330519] ata4: SATA link down (SStatus 0 SControl 300)
> [    1.330554] ata3: SATA link down (SStatus 0 SControl 300)
> [    1.330575] ata1.00: ATA-9: InnoDisk Corp. - mSATA 3ME, S130604, max
> UDMA/133
> [    1.330581] ata1.00: 31277232 sectors, multi 16: LBA48 NCQ (depth
> 31/32), AA
> [    1.332433] ata1.00: failed to get Identify Device Data, Emask 0x1
> [    1.332709] ata1.00: failed to get Identify Device Data, Emask 0x1
> [    1.332717] ata1.00: configured for UDMA/133
> [    1.335813] ata6: SATA link down (SStatus 0 SControl 300)
> [    1.339829] ata5: SATA link down (SStatus 0 SControl 300)
> 
> Given the overhead of building, installing, booting and recovering from
> a failed boot, 'git bisect' is not a realistic option for this switch
> option unless some one can cut the span to a few iterations.
> 
> If it helps, lspci and lsscsi output from an older kernel:
> 
> # lspci
> 00:00.0 Host bridge: Intel Corporation Atom processor C2000 SoC
> Transaction Router (rev 02)
> 00:01.0 PCI bridge: Intel Corporation Atom processor C2000 PCIe Root
> Port 1 (rev 02)
> 00:02.0 PCI bridge: Intel Corporation Atom processor C2000 PCIe Root
> Port 2 (rev 02)
> 00:03.0 PCI bridge: Intel Corporation Atom processor C2000 PCIe Root
> Port 3 (rev 02)
> 00:0e.0 Host bridge: Intel Corporation Atom processor C2000 RAS (rev 02)
> 00:0f.0 IOMMU: Intel Corporation Atom processor C2000 RCEC (rev 02)
> 00:13.0 System peripheral: Intel Corporation Atom processor C2000 SMBus
> 2.0 (rev 02)
> 00:14.0 Ethernet controller: Intel Corporation Ethernet Connection I354
> (rev 03)
> 00:14.1 Ethernet controller: Intel Corporation Ethernet Connection I354
> (rev 03)
> 00:14.2 Ethernet controller: Intel Corporation Ethernet Connection I354
> (rev 03)
> 00:16.0 USB controller: Intel Corporation Atom processor C2000 USB
> Enhanced Host Controller (rev 02)
> 00:17.0 SATA controller: Intel Corporation Atom processor C2000 AHCI
> SATA2 Controller (rev 02)
> 00:18.0 SATA controller: Intel Corporation Atom processor C2000 AHCI
> SATA3 Controller (rev 02)
> 00:1f.0 ISA bridge: Intel Corporation Atom processor C2000 PCU (rev 02)
> 00:1f.3 SMBus: Intel Corporation Atom processor C2000 PCU SMBus (rev 02)
> 01:00.0 Ethernet controller: Broadcom Corporation Device b854 (rev 03)
> 
> 
> # lsscsi
> [0:0:0:0]    disk    ATA      InnoDisk Corp. - 604   /dev/sda

Can you please verify whether 818831c8b22f ("libata: implement
SECURITY PROTOCOL IN/OUT") is the culprit?  ie. try to boot the commit
to verify that the problem is there, and try the one prior?

Thanks.

-- 
tejun

^ permalink raw reply

* boot failure with 4.13.0-rc6 due to ATA errors
From: David Ahern @ 2017-08-28 18:40 UTC (permalink / raw)
  To: Tejun Heo, linux-ide; +Cc: LKML

Not sure why mailing list to direct this bug report to, so starting with
libata based on the error messages.

Some where between v4.12 and 4.13.0-rc6 a Celestica redstone switch
fails to boot due to ATA errors:

[    9.185203] ata1.00: failed to set xfermode (err_mask=0x40)
[    9.500825] ata1.00: revalidation failed (errno=-5)
[   20.449205] ata1.00: failed to set xfermode (err_mask=0x40)

I just tried Linus' top of tree (cc4a41fe5541) and it still fails. With
v4.12 the same switch boots and 'dmesg | grep ata' shows:

[    0.129080] libata version 3.00 loaded.
[    1.016520] ata1: SATA max UDMA/133 abar m2048@0xdffce000 port
0xdffce100 irq 27
[    1.016524] ata2: SATA max UDMA/133 abar m2048@0xdffce000 port
0xdffce180 irq 27
[    1.016528] ata3: SATA max UDMA/133 abar m2048@0xdffce000 port
0xdffce200 irq 27
[    1.016531] ata4: SATA max UDMA/133 abar m2048@0xdffce000 port
0xdffce280 irq 27
[    1.028623] ata5: SATA max UDMA/133 abar m2048@0xdffcd000 port
0xdffcd100 irq 28
[    1.028627] ata6: SATA max UDMA/133 abar m2048@0xdffcd000 port
0xdffcd180 irq 28
[    1.326767] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[    1.328646] ata2: SATA link down (SStatus 0 SControl 300)
[    1.330519] ata4: SATA link down (SStatus 0 SControl 300)
[    1.330554] ata3: SATA link down (SStatus 0 SControl 300)
[    1.330575] ata1.00: ATA-9: InnoDisk Corp. - mSATA 3ME, S130604, max
UDMA/133
[    1.330581] ata1.00: 31277232 sectors, multi 16: LBA48 NCQ (depth
31/32), AA
[    1.332433] ata1.00: failed to get Identify Device Data, Emask 0x1
[    1.332709] ata1.00: failed to get Identify Device Data, Emask 0x1
[    1.332717] ata1.00: configured for UDMA/133
[    1.335813] ata6: SATA link down (SStatus 0 SControl 300)
[    1.339829] ata5: SATA link down (SStatus 0 SControl 300)

Given the overhead of building, installing, booting and recovering from
a failed boot, 'git bisect' is not a realistic option for this switch
option unless some one can cut the span to a few iterations.

If it helps, lspci and lsscsi output from an older kernel:

# lspci
00:00.0 Host bridge: Intel Corporation Atom processor C2000 SoC
Transaction Router (rev 02)
00:01.0 PCI bridge: Intel Corporation Atom processor C2000 PCIe Root
Port 1 (rev 02)
00:02.0 PCI bridge: Intel Corporation Atom processor C2000 PCIe Root
Port 2 (rev 02)
00:03.0 PCI bridge: Intel Corporation Atom processor C2000 PCIe Root
Port 3 (rev 02)
00:0e.0 Host bridge: Intel Corporation Atom processor C2000 RAS (rev 02)
00:0f.0 IOMMU: Intel Corporation Atom processor C2000 RCEC (rev 02)
00:13.0 System peripheral: Intel Corporation Atom processor C2000 SMBus
2.0 (rev 02)
00:14.0 Ethernet controller: Intel Corporation Ethernet Connection I354
(rev 03)
00:14.1 Ethernet controller: Intel Corporation Ethernet Connection I354
(rev 03)
00:14.2 Ethernet controller: Intel Corporation Ethernet Connection I354
(rev 03)
00:16.0 USB controller: Intel Corporation Atom processor C2000 USB
Enhanced Host Controller (rev 02)
00:17.0 SATA controller: Intel Corporation Atom processor C2000 AHCI
SATA2 Controller (rev 02)
00:18.0 SATA controller: Intel Corporation Atom processor C2000 AHCI
SATA3 Controller (rev 02)
00:1f.0 ISA bridge: Intel Corporation Atom processor C2000 PCU (rev 02)
00:1f.3 SMBus: Intel Corporation Atom processor C2000 PCU SMBus (rev 02)
01:00.0 Ethernet controller: Broadcom Corporation Device b854 (rev 03)


# lsscsi
[0:0:0:0]    disk    ATA      InnoDisk Corp. - 604   /dev/sda

^ permalink raw reply

* Re: [PATCH v4 1/2] ata: mediatek: add support for MediaTek SATA controller
From: Tejun Heo @ 2017-08-28 17:55 UTC (permalink / raw)
  To: Ryder Lee
  Cc: Hans de Goede, Rob Herring, devicetree-u79uwXL29TY76Z2rM5mHXA,
	linux-mediatek-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	linux-ide-u79uwXL29TY76Z2rM5mHXA, Long Cheng
In-Reply-To: <ab78899bd7fa99a12497b5b16ffb7acfeac1f42c.1503018631.git.ryder.lee-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>

On Fri, Aug 18, 2017 at 09:13:07AM +0800, Ryder Lee wrote:
> This adds support the AHCI-compliant Serial ATA controller present
> on MediaTek SoCs.
> 
> Signed-off-by: Ryder Lee <ryder.lee-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>
> Acked-by: Tejun Heo <tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>

Applied to libata/for-4.14.  If you want me to take the dt patch too,
please let me know.

Thanks.

-- 
tejun
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply

* Re: [PATCH] pata_octeon_cf: use of_property_read_{bool|u32}()
From: Tejun Heo @ 2017-08-28 17:45 UTC (permalink / raw)
  To: Sergei Shtylyov
  Cc: Bartlomiej Zolnierkiewicz,
	"open list:LIBATA PATA DRIVERS", linux-mips
In-Reply-To: <20170827195613.904715064@cogentembedded.com>

On Sun, Aug 27, 2017 at 10:55:09PM +0300, Sergei Shtylyov wrote:
> The Octeon CF driver basically  open-codes of_property_read_{bool|u32}()
> using  of_{find|get}_property() calls in its  probe() method.  Using the
> modern DT APIs saves 2 LoCs and 16 bytes of object code (MIPS gcc 3.4.3).
> 
> Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>

Applied to libata/for-4.14.

Thanks.

-- 
tejun

^ permalink raw reply

* ALPSS: reminder and submission deadline
From: Christoph Hellwig @ 2017-08-28 17:37 UTC (permalink / raw)
  To: linux-ide

Just one more month to go until the Alpine Linux Persistence and Storage
Summit (ALPSS) will be held from September 27-29 at the Lizumerhuette
in Austria!

If you want to submit a 30-minute talk please do so until Sep 1st, as we
plan to finalize our schedule.  BOFs and team meetings will be scheduled
ad-hoc in the available meeting rooms or outside with a beautiful mountain
panorama.

If you only want to attend you can do so until last minute as long as
space doesn't run.

To submit a talk or request attendance please send a mail to:

	alpss-pc@lists.infradead.org

More details are available on our website:

	http://www.alpss.at/

Thank you on behalf of the program committee:

    Stephen Bates
    Sagi Grimberg
    Christoph Hellwig
    Johannes Thumshirn
    Richard Weinberger

^ permalink raw reply

* Re: [PATCH] libata: quirk read log on no-name M.2 SSD
From: Tejun Heo @ 2017-08-28 17:28 UTC (permalink / raw)
  To: Christoph Hellwig; +Cc: idosch, linux-ide
In-Reply-To: <20170828062808.20717-1-hch@lst.de>

On Mon, Aug 28, 2017 at 08:28:08AM +0200, Christoph Hellwig wrote:
> Ivo reported that reading the log page on his systems fails,
> so quirk it as it won't support ZBC or security protocols.
> 
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> Reported-by: Ido Schimmel <idosch@mellanox.com>
> Tested-by: Ido Schimmel <idosch@mellanox.com>

Applied to libata/for-4.13-fixes w/ Ido's name fixed in the
description.

Thanks.

-- 
tejun

^ permalink raw reply

* (unknown), 
From: dengx @ 2017-08-28 13:22 UTC (permalink / raw)
  To: linux-ide

[-- Attachment #1: MAIL_365828227848183_linux-ide.zip --]
[-- Type: application/zip, Size: 72397 bytes --]

^ permalink raw reply

* [PATCH] libata: quirk read log on no-name M.2 SSD
From: Christoph Hellwig @ 2017-08-28  6:28 UTC (permalink / raw)
  To: tj; +Cc: idosch, linux-ide

Ivo reported that reading the log page on his systems fails,
so quirk it as it won't support ZBC or security protocols.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reported-by: Ido Schimmel <idosch@mellanox.com>
Tested-by: Ido Schimmel <idosch@mellanox.com>
---
 drivers/ata/libata-core.c | 4 ++++
 include/linux/libata.h    | 1 +
 2 files changed, 5 insertions(+)

diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index fa7dd4394c02..697f5f896b19 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -2079,6 +2079,8 @@ unsigned int ata_read_log_page(struct ata_device *dev, u8 log,
 	 */
 	if (ap_flags & ATA_FLAG_NO_LOG_PAGE)
 		return AC_ERR_DEV;
+	if (dev->horkage & ATA_HORKAGE_NO_LOG_PAGE)
+		return AC_ERR_DEV;
 
 retry:
 	ata_tf_init(dev, &tf);
@@ -4578,6 +4580,8 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = {
 	{ "WDC WD3000JD-*",		NULL,	ATA_HORKAGE_WD_BROKEN_LPM },
 	{ "WDC WD3200JD-*",		NULL,	ATA_HORKAGE_WD_BROKEN_LPM },
 
+
+	{ "M.2 (S42) 3ME3",		NULL,	ATA_HORKAGE_NO_LOG_PAGE },
 	/* End Marker */
 	{ }
 };
diff --git a/include/linux/libata.h b/include/linux/libata.h
index 931c32f1f18d..9e927ae7fced 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -438,6 +438,7 @@ enum {
 	ATA_HORKAGE_NO_DMA_LOG	= (1 << 23),	/* don't use DMA for log read */
 	ATA_HORKAGE_NOTRIM	= (1 << 24),	/* don't use TRIM */
 	ATA_HORKAGE_MAX_SEC_1024 = (1 << 25),	/* Limit max sects to 1024 */
+	ATA_HORKAGE_NO_LOG_PAGE = (1 << 26),	/* Doesn't like Get Log Page */
 
 	 /* DMA mask for user DMA control: User visible values; DO NOT
 	    renumber */
-- 
2.11.0


^ permalink raw reply related

* [PATCH] pata_octeon_cf: use of_property_read_{bool|u32}()
From: Sergei Shtylyov @ 2017-08-27 19:55 UTC (permalink / raw)
  To: Bartlomiej Zolnierkiewicz, Tejun Heo,
	"open list:LIBATA PATA DRIVERS"
  Cc: linux-mips, Sergei Shtylyov

[-- Attachment #1: pata_octeon_cf-use-of_property_read_-bool-u32.patch --]
[-- Type: text/plain, Size: 1543 bytes --]

The Octeon CF driver basically  open-codes of_property_read_{bool|u32}()
using  of_{find|get}_property() calls in its  probe() method.  Using the
modern DT APIs saves 2 LoCs and 16 bytes of object code (MIPS gcc 3.4.3).

Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>

---
 drivers/ata/pata_octeon_cf.c |   10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

Index: libata/drivers/ata/pata_octeon_cf.c
===================================================================
--- libata.orig/drivers/ata/pata_octeon_cf.c
+++ libata/drivers/ata/pata_octeon_cf.c
@@ -840,7 +840,6 @@ static int octeon_cf_probe(struct platfo
 	struct property *reg_prop;
 	int n_addr, n_size, reg_len;
 	struct device_node *node;
-	const void *prop;
 	void __iomem *cs0;
 	void __iomem *cs1 = NULL;
 	struct ata_host *host;
@@ -850,7 +849,7 @@ static int octeon_cf_probe(struct platfo
 	void __iomem *base;
 	struct octeon_cf_port *cf_port;
 	int rv = -ENOMEM;
-
+	u32 bus_width;
 
 	node = pdev->dev.of_node;
 	if (node == NULL)
@@ -860,11 +859,10 @@ static int octeon_cf_probe(struct platfo
 	if (!cf_port)
 		return -ENOMEM;
 
-	cf_port->is_true_ide = (of_find_property(node, "cavium,true-ide", NULL) != NULL);
+	cf_port->is_true_ide = of_property_read_bool(node, "cavium,true-ide");
 
-	prop = of_get_property(node, "cavium,bus-width", NULL);
-	if (prop)
-		is_16bit = (be32_to_cpup(prop) == 16);
+	if (of_property_read_u32(node, "cavium,bus-width", &bus_width) == 0)
+		is_16bit = (bus_width == 16);
 	else
 		is_16bit = false;
 


^ permalink raw reply

* Re: Regression due to "libata: implement SECURITY PROTOCOL IN/OUT"
From: Ido Schimmel @ 2017-08-27 18:25 UTC (permalink / raw)
  To: Christoph Hellwig; +Cc: tj, xiaolong.ye, mlxsw, michaelsh, linux-ide
In-Reply-To: <20170827170348.GA22437@lst.de>

On Sun, Aug 27, 2017 at 07:03:48PM +0200, Christoph Hellwig wrote:
> Does this make your boot issue go away?

Yes.

Feel free to submit officially with my tag:

Tested-by: Ido Schimmel <idosch@mellanox.com>

Hopefully the patch can be sent to Linus sometime this week, before 4.13
is released.

Thanks a lot Christoph!

^ permalink raw reply

* Re: Regression due to "libata: implement SECURITY PROTOCOL IN/OUT"
From: Christoph Hellwig @ 2017-08-27 17:03 UTC (permalink / raw)
  To: Ido Schimmel
  Cc: Christoph Hellwig, tj, xiaolong.ye, mlxsw, michaelsh, linux-ide
In-Reply-To: <20170827105331.GA18386@shredder.mtl.com>

Does this make your boot issue go away?

diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index fa7dd4394c02..697f5f896b19 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -2079,6 +2079,8 @@ unsigned int ata_read_log_page(struct ata_device *dev, u8 log,
 	 */
 	if (ap_flags & ATA_FLAG_NO_LOG_PAGE)
 		return AC_ERR_DEV;
+	if (dev->horkage & ATA_HORKAGE_NO_LOG_PAGE)
+		return AC_ERR_DEV;
 
 retry:
 	ata_tf_init(dev, &tf);
@@ -4578,6 +4580,8 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = {
 	{ "WDC WD3000JD-*",		NULL,	ATA_HORKAGE_WD_BROKEN_LPM },
 	{ "WDC WD3200JD-*",		NULL,	ATA_HORKAGE_WD_BROKEN_LPM },
 
+
+	{ "M.2 (S42) 3ME3",		NULL,	ATA_HORKAGE_NO_LOG_PAGE },
 	/* End Marker */
 	{ }
 };
diff --git a/include/linux/libata.h b/include/linux/libata.h
index 931c32f1f18d..9e927ae7fced 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -438,6 +438,7 @@ enum {
 	ATA_HORKAGE_NO_DMA_LOG	= (1 << 23),	/* don't use DMA for log read */
 	ATA_HORKAGE_NOTRIM	= (1 << 24),	/* don't use TRIM */
 	ATA_HORKAGE_MAX_SEC_1024 = (1 << 25),	/* Limit max sects to 1024 */
+	ATA_HORKAGE_NO_LOG_PAGE = (1 << 26),	/* Doesn't like Get Log Page */
 
 	 /* DMA mask for user DMA control: User visible values; DO NOT
 	    renumber */

^ permalink raw reply related

* Re: Regression due to "libata: implement SECURITY PROTOCOL IN/OUT"
From: Ido Schimmel @ 2017-08-27 10:53 UTC (permalink / raw)
  To: Christoph Hellwig; +Cc: tj, xiaolong.ye, mlxsw, michaelsh, linux-ide
In-Reply-To: <20170827090546.GA16766@lst.de>

Hi Christoph,

On Sun, Aug 27, 2017 at 11:05:46AM +0200, Christoph Hellwig wrote:
> On Sat, Aug 26, 2017 at 08:15:37PM +0300, Ido Schimmel wrote:
> > On Thu, Aug 24, 2017 at 03:18:04PM +0300, Ido Schimmel wrote:
> > > On Thu, Aug 24, 2017 at 02:07:29PM +0200, Christoph Hellwig wrote:
> > > > What kind of device is this?   Seems like we need to blacklist it
> > > > as it chokes when we tried to read the Identify Devіce Log.
> > > 
> > > Is the below enough or do you need more info?
> > 
> > Ping?
> 
> Sorry, been a bit busy.  Is this an actual SSD connected to a real
> controller, or a PCIe SSD that implements ahci itself?

Yes, it's an actual SSD. Not PCIe.

> Can you send the full dmesg output, plus lspci -v, plus the output of
> hdparm -i /dev/sdN for the device after a working boot?

dmesg from 4.12.8 kernel:
https://pastebin.com/HjMFqrP8

lspci -v from 4.12.8 kernel:
https://pastebin.com/UFnKVmg9

hdparm -i from 4.12.8 kernel:
https://pastebin.com/GdCVcj3G

dmesg from 4.13-rc6 kernel where the error is showed:
https://pastebin.com/uVLRsybx

Thank you for your time.

^ permalink raw reply

* Re: Regression due to "libata: implement SECURITY PROTOCOL IN/OUT"
From: Christoph Hellwig @ 2017-08-27  9:05 UTC (permalink / raw)
  To: Ido Schimmel
  Cc: Christoph Hellwig, tj, xiaolong.ye, mlxsw, michaelsh, linux-ide
In-Reply-To: <20170826171537.GA4755@shredder>

On Sat, Aug 26, 2017 at 08:15:37PM +0300, Ido Schimmel wrote:
> On Thu, Aug 24, 2017 at 03:18:04PM +0300, Ido Schimmel wrote:
> > On Thu, Aug 24, 2017 at 02:07:29PM +0200, Christoph Hellwig wrote:
> > > What kind of device is this?   Seems like we need to blacklist it
> > > as it chokes when we tried to read the Identify Devіce Log.
> > 
> > Is the below enough or do you need more info?
> 
> Ping?

Sorry, been a bit busy.  Is this an actual SSD connected to a real
controller, or a PCIe SSD that implements ahci itself?

Can you send the full dmesg output, plus lspci -v, plus the output of
hdparm -i /dev/sdN for the device after a working boot?

^ permalink raw reply

* Re: Regression due to "libata: implement SECURITY PROTOCOL IN/OUT"
From: Ido Schimmel @ 2017-08-26 17:15 UTC (permalink / raw)
  To: Christoph Hellwig; +Cc: tj, xiaolong.ye, mlxsw, michaelsh, linux-ide
In-Reply-To: <20170824121804.GA14057@shredder.mtl.com>

On Thu, Aug 24, 2017 at 03:18:04PM +0300, Ido Schimmel wrote:
> On Thu, Aug 24, 2017 at 02:07:29PM +0200, Christoph Hellwig wrote:
> > What kind of device is this?   Seems like we need to blacklist it
> > as it chokes when we tried to read the Identify Devіce Log.
> 
> Is the below enough or do you need more info?

Ping?

^ permalink raw reply

* Re: [PATCH v4 0/2] Add support for MediaTek AHCI SATA
From: Ryder Lee @ 2017-08-26  3:19 UTC (permalink / raw)
  To: Tejun Heo
  Cc: Hans de Goede, Rob Herring, devicetree, linux-mediatek,
	linux-kernel, linux-ide, Long Cheng
In-Reply-To: <cover.1503018631.git.ryder.lee@mediatek.com>

Hi Tejun,

Just a gentle ping. I think others are okay with both :D

Thanks.

On Fri, 2017-08-18 at 09:13 +0800, Ryder Lee wrote:
> Hi,
> 
> This patch series add support for AHCI compatible SATA controller, and it is
> compliant with the ahci 1.3 and sata 3.0 specification. This driver is slightly
> different than ahci_platform.c (e.g., reset control, subsystem setting).
> 
> changes since v4:
> - update binding text: Instead of "soc-model", pick something checkpatch.pl understands
> 
> changes since v3:
> - update binding text: fix a typo and modify compatible strings.
> 
> changes since v2:
> - according to Commit a53e35db70d1 ("reset: Ensure drivers are explicit when requesting reset lines").
>   replace devm_reset_control_get_optional() by devm_reset_control_get_optional_exclusive().
> 
> changes since v1:
> - update binding text: add missing "specifier pairs" descriptions.
> - fix kbuild test warning: fix the error handling.
> 
> Ryder Lee (2):
>   ata: mediatek: add support for MediaTek SATA controller
>   dt-bindings: ata: add DT bindings for MediaTek SATA controller
> 
>  Documentation/devicetree/bindings/ata/ahci-mtk.txt |  51 ++++++
>  drivers/ata/Kconfig                                |  10 ++
>  drivers/ata/Makefile                               |   1 +
>  drivers/ata/ahci_mtk.c                             | 196 +++++++++++++++++++++
>  4 files changed, 258 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/ata/ahci-mtk.txt
>  create mode 100644 drivers/ata/ahci_mtk.c
> 



^ permalink raw reply

* [PATCH] ata: add a blank line after declaration
From: Himanshu Jha @ 2017-08-24 21:19 UTC (permalink / raw)
  To: tj; +Cc: linux-ide, linux-kernel, Himanshu Jha

Added a blank line after declaration conforming to the coding style.
Issue found using checkpatch.pl

Signed-off-by: Himanshu Jha <himanshujha199640@gmail.com>
---
 drivers/ata/acard-ahci.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/ata/acard-ahci.c b/drivers/ata/acard-ahci.c
index 940ddbc..a45886b 100644
--- a/drivers/ata/acard-ahci.c
+++ b/drivers/ata/acard-ahci.c
@@ -338,6 +338,7 @@ static int acard_ahci_port_start(struct ata_port *ap)
 	if ((hpriv->cap & HOST_CAP_FBS) && sata_pmp_supported(ap)) {
 		void __iomem *port_mmio = ahci_port_base(ap);
 		u32 cmd = readl(port_mmio + PORT_CMD);
+
 		if (cmd & PORT_CMD_FBSCP)
 			pp->fbs_supported = true;
 		else if (hpriv->flags & AHCI_HFLAG_YES_FBS) {
-- 
2.7.4


^ permalink raw reply related

* Re: [PATCH 1/3] ata: ftide010: constify ata_port_info
From: Linus Walleij @ 2017-08-24 19:46 UTC (permalink / raw)
  To: Arvind Yadav
  Cc: Tejun Heo, Bartlomiej Zolnierkiewicz,
	linux-kernel@vger.kernel.org, linux-ide
In-Reply-To: <1503568201-9991-2-git-send-email-arvind.yadav.cs@gmail.com>

On Thu, Aug 24, 2017 at 11:49 AM, Arvind Yadav
<arvind.yadav.cs@gmail.com> wrote:

> ata_port_info are not supposed to change at runtime. All functions
> working with ata_port_info provided by <linux/libata.h> work with
> const ata_port_info. So mark the non-const structs as const.
>
> Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com>

Acked-by: Linus Walleij <linus.walleij@linaro.org>

Yours,
Linus Walleij

^ permalink raw reply

* Re: [PATCH 0/3] constify ata_port_info
From: Tejun Heo @ 2017-08-24 17:26 UTC (permalink / raw)
  To: Arvind Yadav; +Cc: b.zolnierkie, linus.walleij, linux-kernel, linux-ide
In-Reply-To: <20170824142346.GN491396@devbig577.frc2.facebook.com>

On Thu, Aug 24, 2017 at 07:23:46AM -0700, Tejun Heo wrote:
> On Thu, Aug 24, 2017 at 03:19:58PM +0530, Arvind Yadav wrote:
> > ata_port_info are not supposed to change at runtime. All functions
> > working with ata_port_info provided by <linux/libata.h> work with
> > const ata_port_info. So mark the non-const structs as const.
> 
> Applied 1-3 to libata/for-4.14.

Caused build warnings.  Reverted.  Please test before submitting
patches.

Thanks.

-- 
tejun

^ permalink raw reply

* [tj-libata:for-4.14 8/10] drivers/ata/pata_ftide010.c:376:31: error: assignment of member 'flags' in read-only object
From: kbuild test robot @ 2017-08-24 17:21 UTC (permalink / raw)
  To: Arvind Yadav; +Cc: kbuild-all, linux-ide, Tejun Heo

[-- Attachment #1: Type: text/plain, Size: 7607 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/tj/libata.git for-4.14
head:   1916a98f8d0c84065b2f73aa571ccebafb63e90f
commit: 8ab84a8d2ae554f248d3e59b5ad8242e2352b4c1 [8/10] ata: ftide010: constify ata_port_info
config: arm-allmodconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (Debian 6.1.1-9) 6.1.1 20160705
reproduce:
        wget https://raw.githubusercontent.com/01org/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        git checkout 8ab84a8d2ae554f248d3e59b5ad8242e2352b4c1
        # save the attached .config to linux build tree
        make.cross ARCH=arm 

All errors (new ones prefixed by >>):

   drivers/ata/pata_ftide010.c: In function 'pata_ftide010_gemini_init':
>> drivers/ata/pata_ftide010.c:376:31: error: assignment of member 'flags' in read-only object
      ftide010_port_info[0].flags |= ATA_FLAG_SATA;
                                  ^~

vim +/flags +376 drivers/ata/pata_ftide010.c

be4e456e Linus Walleij 2017-06-04  350  
be4e456e Linus Walleij 2017-06-04  351  static int pata_ftide010_gemini_init(struct ftide010 *ftide,
be4e456e Linus Walleij 2017-06-04  352  				     bool is_ata1)
be4e456e Linus Walleij 2017-06-04  353  {
be4e456e Linus Walleij 2017-06-04  354  	struct device *dev = ftide->dev;
be4e456e Linus Walleij 2017-06-04  355  	struct sata_gemini *sg;
be4e456e Linus Walleij 2017-06-04  356  	enum gemini_muxmode muxmode;
be4e456e Linus Walleij 2017-06-04  357  
be4e456e Linus Walleij 2017-06-04  358  	/* Look up SATA bridge */
be4e456e Linus Walleij 2017-06-04  359  	sg = gemini_sata_bridge_get();
be4e456e Linus Walleij 2017-06-04  360  	if (IS_ERR(sg))
be4e456e Linus Walleij 2017-06-04  361  		return PTR_ERR(sg);
be4e456e Linus Walleij 2017-06-04  362  	ftide->sg = sg;
be4e456e Linus Walleij 2017-06-04  363  
be4e456e Linus Walleij 2017-06-04  364  	muxmode = gemini_sata_get_muxmode(sg);
be4e456e Linus Walleij 2017-06-04  365  
be4e456e Linus Walleij 2017-06-04  366  	/* Special ops */
be4e456e Linus Walleij 2017-06-04  367  	pata_ftide010_port_ops.port_start =
be4e456e Linus Walleij 2017-06-04  368  		pata_ftide010_gemini_port_start;
be4e456e Linus Walleij 2017-06-04  369  	pata_ftide010_port_ops.port_stop =
be4e456e Linus Walleij 2017-06-04  370  		pata_ftide010_gemini_port_stop;
be4e456e Linus Walleij 2017-06-04  371  	pata_ftide010_port_ops.cable_detect =
be4e456e Linus Walleij 2017-06-04  372  		pata_ftide010_gemini_cable_detect;
be4e456e Linus Walleij 2017-06-04  373  
be4e456e Linus Walleij 2017-06-04  374  	/* Flag port as SATA-capable */
be4e456e Linus Walleij 2017-06-04  375  	if (gemini_sata_bridge_enabled(sg, is_ata1))
be4e456e Linus Walleij 2017-06-04 @376  		ftide010_port_info[0].flags |= ATA_FLAG_SATA;
be4e456e Linus Walleij 2017-06-04  377  
be4e456e Linus Walleij 2017-06-04  378  	/*
be4e456e Linus Walleij 2017-06-04  379  	 * We assume that a simple 40-wire cable is used in the PATA mode.
be4e456e Linus Walleij 2017-06-04  380  	 * if you're adding a system using the PATA interface, make sure
be4e456e Linus Walleij 2017-06-04  381  	 * the right cable is set up here, it might be necessary to use
be4e456e Linus Walleij 2017-06-04  382  	 * special hardware detection or encode the cable type in the device
be4e456e Linus Walleij 2017-06-04  383  	 * tree with special properties.
be4e456e Linus Walleij 2017-06-04  384  	 */
be4e456e Linus Walleij 2017-06-04  385  	if (!is_ata1) {
be4e456e Linus Walleij 2017-06-04  386  		switch (muxmode) {
be4e456e Linus Walleij 2017-06-04  387  		case GEMINI_MUXMODE_0:
be4e456e Linus Walleij 2017-06-04  388  			ftide->master_cbl = ATA_CBL_SATA;
be4e456e Linus Walleij 2017-06-04  389  			ftide->slave_cbl = ATA_CBL_PATA40;
be4e456e Linus Walleij 2017-06-04  390  			ftide->master_to_sata0 = true;
be4e456e Linus Walleij 2017-06-04  391  			break;
be4e456e Linus Walleij 2017-06-04  392  		case GEMINI_MUXMODE_1:
be4e456e Linus Walleij 2017-06-04  393  			ftide->master_cbl = ATA_CBL_SATA;
be4e456e Linus Walleij 2017-06-04  394  			ftide->slave_cbl = ATA_CBL_NONE;
be4e456e Linus Walleij 2017-06-04  395  			ftide->master_to_sata0 = true;
be4e456e Linus Walleij 2017-06-04  396  			break;
be4e456e Linus Walleij 2017-06-04  397  		case GEMINI_MUXMODE_2:
be4e456e Linus Walleij 2017-06-04  398  			ftide->master_cbl = ATA_CBL_PATA40;
be4e456e Linus Walleij 2017-06-04  399  			ftide->slave_cbl = ATA_CBL_PATA40;
be4e456e Linus Walleij 2017-06-04  400  			break;
be4e456e Linus Walleij 2017-06-04  401  		case GEMINI_MUXMODE_3:
be4e456e Linus Walleij 2017-06-04  402  			ftide->master_cbl = ATA_CBL_SATA;
be4e456e Linus Walleij 2017-06-04  403  			ftide->slave_cbl = ATA_CBL_SATA;
be4e456e Linus Walleij 2017-06-04  404  			ftide->master_to_sata0 = true;
be4e456e Linus Walleij 2017-06-04  405  			ftide->slave_to_sata1 = true;
be4e456e Linus Walleij 2017-06-04  406  			break;
be4e456e Linus Walleij 2017-06-04  407  		}
be4e456e Linus Walleij 2017-06-04  408  	} else {
be4e456e Linus Walleij 2017-06-04  409  		switch (muxmode) {
be4e456e Linus Walleij 2017-06-04  410  		case GEMINI_MUXMODE_0:
be4e456e Linus Walleij 2017-06-04  411  			ftide->master_cbl = ATA_CBL_SATA;
be4e456e Linus Walleij 2017-06-04  412  			ftide->slave_cbl = ATA_CBL_NONE;
be4e456e Linus Walleij 2017-06-04  413  			ftide->master_to_sata1 = true;
be4e456e Linus Walleij 2017-06-04  414  			break;
be4e456e Linus Walleij 2017-06-04  415  		case GEMINI_MUXMODE_1:
be4e456e Linus Walleij 2017-06-04  416  			ftide->master_cbl = ATA_CBL_SATA;
be4e456e Linus Walleij 2017-06-04  417  			ftide->slave_cbl = ATA_CBL_PATA40;
be4e456e Linus Walleij 2017-06-04  418  			ftide->master_to_sata1 = true;
be4e456e Linus Walleij 2017-06-04  419  			break;
be4e456e Linus Walleij 2017-06-04  420  		case GEMINI_MUXMODE_2:
be4e456e Linus Walleij 2017-06-04  421  			ftide->master_cbl = ATA_CBL_SATA;
be4e456e Linus Walleij 2017-06-04  422  			ftide->slave_cbl = ATA_CBL_SATA;
be4e456e Linus Walleij 2017-06-04  423  			ftide->slave_to_sata0 = true;
be4e456e Linus Walleij 2017-06-04  424  			ftide->master_to_sata1 = true;
be4e456e Linus Walleij 2017-06-04  425  			break;
be4e456e Linus Walleij 2017-06-04  426  		case GEMINI_MUXMODE_3:
be4e456e Linus Walleij 2017-06-04  427  			ftide->master_cbl = ATA_CBL_PATA40;
be4e456e Linus Walleij 2017-06-04  428  			ftide->slave_cbl = ATA_CBL_PATA40;
be4e456e Linus Walleij 2017-06-04  429  			break;
be4e456e Linus Walleij 2017-06-04  430  		}
be4e456e Linus Walleij 2017-06-04  431  	}
be4e456e Linus Walleij 2017-06-04  432  	dev_info(dev, "set up Gemini PATA%d\n", is_ata1);
be4e456e Linus Walleij 2017-06-04  433  
be4e456e Linus Walleij 2017-06-04  434  	return 0;
be4e456e Linus Walleij 2017-06-04  435  }
be4e456e Linus Walleij 2017-06-04  436  #else
be4e456e Linus Walleij 2017-06-04  437  static int pata_ftide010_gemini_init(struct ftide010 *ftide,
be4e456e Linus Walleij 2017-06-04  438  				     bool is_ata1)
be4e456e Linus Walleij 2017-06-04  439  {
be4e456e Linus Walleij 2017-06-04  440  	return -ENOTSUPP;
be4e456e Linus Walleij 2017-06-04  441  }
be4e456e Linus Walleij 2017-06-04  442  #endif
be4e456e Linus Walleij 2017-06-04  443  
be4e456e Linus Walleij 2017-06-04  444  

:::::: The code at line 376 was first introduced by commit
:::::: be4e456ed3a5918f4e75f532837bb19128a690c9 ata: Add driver for Faraday Technology FTIDE010

:::::: TO: Linus Walleij <linus.walleij@linaro.org>
:::::: CC: Tejun Heo <tj@kernel.org>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 62819 bytes --]

^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox