Fix Samsung pci-e SSD handling on some macbooks (rhbz 1161805)
This commit is contained in:
		
							parent
							
								
									9a2db57bfd
								
							
						
					
					
						commit
						09115662e1
					
				
							
								
								
									
										67
									
								
								ahci-disable-MSI-instead-of-NCQ-on-Samsung-pci-e-SSD.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								ahci-disable-MSI-instead-of-NCQ-on-Samsung-pci-e-SSD.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,67 @@ | |||||||
|  | From: Tejun Heo <tj@kernel.org> | ||||||
|  | Date: Mon, 27 Oct 2014 10:30:52 -0400 | ||||||
|  | Subject: [PATCH] ahci: disable MSI instead of NCQ on Samsung pci-e SSDs on | ||||||
|  |  macbooks | ||||||
|  | 
 | ||||||
|  | From 44aecdabc85087e7c299d7a28e095e2b91894a51 Mon Sep 17 00:00:00 2001 | ||||||
|  | From: Tejun Heo <tj@kernel.org> | ||||||
|  | Date: Mon, 27 Oct 2014 10:22:56 -0400 | ||||||
|  | 
 | ||||||
|  | Samsung pci-e SSDs on macbooks failed miserably on NCQ commands, so | ||||||
|  | 67809f85d31e ("ahci: disable NCQ on Samsung pci-e SSDs on macbooks") | ||||||
|  | disabled NCQ on them.  It turns out that NCQ is fine as long as MSI is | ||||||
|  | not used, so let's turn off MSI and leave NCQ on. | ||||||
|  | 
 | ||||||
|  | Signed-off-by: Tejun Heo <tj@kernel.org> | ||||||
|  | Link: https://bugzilla.kernel.org/show_bug.cgi?id=60731 | ||||||
|  | Tested-by: <dorin@i51.org> | ||||||
|  | Tested-by: Imre Kaloz <kaloz@openwrt.org> | ||||||
|  | Cc: stable@vger.kernel.org | ||||||
|  | Fixes: 67809f85d31e ("ahci: disable NCQ on Samsung pci-e SSDs on macbooks") | ||||||
|  | ---
 | ||||||
|  |  drivers/ata/ahci.c | 14 +++++++++++--- | ||||||
|  |  1 file changed, 11 insertions(+), 3 deletions(-) | ||||||
|  | 
 | ||||||
|  | diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
 | ||||||
|  | index 5f039f191067..ef4b647b3ed2 100644
 | ||||||
|  | --- a/drivers/ata/ahci.c
 | ||||||
|  | +++ b/drivers/ata/ahci.c
 | ||||||
|  | @@ -60,6 +60,7 @@ enum board_ids {
 | ||||||
|  |  	/* board IDs by feature in alphabetical order */ | ||||||
|  |  	board_ahci, | ||||||
|  |  	board_ahci_ign_iferr, | ||||||
|  | +	board_ahci_nomsi,
 | ||||||
|  |  	board_ahci_noncq, | ||||||
|  |  	board_ahci_nosntf, | ||||||
|  |  	board_ahci_yes_fbs, | ||||||
|  | @@ -121,6 +122,13 @@ static const struct ata_port_info ahci_port_info[] = {
 | ||||||
|  |  		.udma_mask	= ATA_UDMA6, | ||||||
|  |  		.port_ops	= &ahci_ops, | ||||||
|  |  	}, | ||||||
|  | +	[board_ahci_nomsi] = {
 | ||||||
|  | +		AHCI_HFLAGS	(AHCI_HFLAG_NO_MSI),
 | ||||||
|  | +		.flags		= AHCI_FLAG_COMMON,
 | ||||||
|  | +		.pio_mask	= ATA_PIO4,
 | ||||||
|  | +		.udma_mask	= ATA_UDMA6,
 | ||||||
|  | +		.port_ops	= &ahci_ops,
 | ||||||
|  | +	},
 | ||||||
|  |  	[board_ahci_noncq] = { | ||||||
|  |  		AHCI_HFLAGS	(AHCI_HFLAG_NO_NCQ), | ||||||
|  |  		.flags		= AHCI_FLAG_COMMON, | ||||||
|  | @@ -475,10 +483,10 @@ static const struct pci_device_id ahci_pci_tbl[] = {
 | ||||||
|  |  	{ PCI_VDEVICE(ASMEDIA, 0x0612), board_ahci },	/* ASM1062 */ | ||||||
|  |   | ||||||
|  |  	/* | ||||||
|  | -	 * Samsung SSDs found on some macbooks.  NCQ times out.
 | ||||||
|  | -	 * https://bugzilla.kernel.org/show_bug.cgi?id=60731
 | ||||||
|  | +	 * Samsung SSDs found on some macbooks.  NCQ times out if MSI is
 | ||||||
|  | +	 * enabled.  https://bugzilla.kernel.org/show_bug.cgi?id=60731
 | ||||||
|  |  	 */ | ||||||
|  | -	{ PCI_VDEVICE(SAMSUNG, 0x1600), board_ahci_noncq },
 | ||||||
|  | +	{ PCI_VDEVICE(SAMSUNG, 0x1600), board_ahci_nomsi },
 | ||||||
|  |   | ||||||
|  |  	/* Enmotus */ | ||||||
|  |  	{ PCI_DEVICE(0x1c44, 0x8000), board_ahci }, | ||||||
|  | -- 
 | ||||||
|  | 1.9.3 | ||||||
|  | 
 | ||||||
| @ -616,6 +616,9 @@ Patch26064: Input-add-driver-for-the-Goodix-touchpanel.patch | |||||||
| 
 | 
 | ||||||
| Patch26065: sched-Remove-lockdep-check-in-sched_move_task.patch | Patch26065: sched-Remove-lockdep-check-in-sched_move_task.patch | ||||||
| 
 | 
 | ||||||
|  | #rhbz 1161805 | ||||||
|  | Patch26066: ahci-disable-MSI-instead-of-NCQ-on-Samsung-pci-e-SSD.patch | ||||||
|  | 
 | ||||||
| # git clone ssh://git.fedorahosted.org/git/kernel-arm64.git, git diff master...devel | # git clone ssh://git.fedorahosted.org/git/kernel-arm64.git, git diff master...devel | ||||||
| Patch30000: kernel-arm64.patch | Patch30000: kernel-arm64.patch | ||||||
| 
 | 
 | ||||||
| @ -1341,6 +1344,9 @@ ApplyPatch Input-add-driver-for-the-Goodix-touchpanel.patch | |||||||
| 
 | 
 | ||||||
| ApplyPatch sched-Remove-lockdep-check-in-sched_move_task.patch | ApplyPatch sched-Remove-lockdep-check-in-sched_move_task.patch | ||||||
| 
 | 
 | ||||||
|  | #rhbz 1161805 | ||||||
|  | ApplyPatch ahci-disable-MSI-instead-of-NCQ-on-Samsung-pci-e-SSD.patch | ||||||
|  | 
 | ||||||
| %if 0%{?aarch64patches} | %if 0%{?aarch64patches} | ||||||
| ApplyPatch kernel-arm64.patch | ApplyPatch kernel-arm64.patch | ||||||
| %ifnarch aarch64 # this is stupid, but i want to notice before secondary koji does. | %ifnarch aarch64 # this is stupid, but i want to notice before secondary koji does. | ||||||
| @ -2209,6 +2215,9 @@ fi | |||||||
| #                                    ||----w | | #                                    ||----w | | ||||||
| #                                    ||     || | #                                    ||     || | ||||||
| %changelog | %changelog | ||||||
|  | * Mon Nov 10 2014 Josh Boyer <jwboyer@fedoraproject.org> | ||||||
|  | - Fix Samsung pci-e SSD handling on some macbooks (rhbz 1161805) | ||||||
|  | 
 | ||||||
| * Mon Nov 10 2014 Josh Boyer <jwboyer@fedoraproject.org> - 3.18.0-0.rc4.git0.1 | * Mon Nov 10 2014 Josh Boyer <jwboyer@fedoraproject.org> - 3.18.0-0.rc4.git0.1 | ||||||
| - Linux v3.18-rc4 | - Linux v3.18-rc4 | ||||||
| - Temporarily disable aarch64patches | - Temporarily disable aarch64patches | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user