summaryrefslogtreecommitdiffstats
path: root/drivers/ata
Commit message (Collapse)AuthorAgeFilesLines
* sata-imx: Fix a typoAndrey Smirnov2016-04-281-1/+1
| | | | | | | | It looks like comma operator was accidentaly used instead of regular semicolon. Fix this to avoid confusing future readers of the code. Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* driver: replace dev_request_mem_region with dev_request_mem_resourceSascha Hauer2016-03-074-11/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dev_request_mem_region doesn't work properly one some SoCs on which PTR_ERR() values clash with valid return values from dev_request_mem_region. Replace them with dev_request_mem_resource where possible. This patch has been generated with the following semantic patch: // <smpl> @@ expression d; expression n; expression io; identifier func; @@ func(...) { +struct resource *iores; <+... -io = dev_request_mem_region(d, n); -if (IS_ERR(io)) { +iores = dev_request_mem_resource(d, n); +if (IS_ERR(iores)) { ... - return PTR_ERR(io); -} + return PTR_ERR(iores); +} +io = IOMEM(iores->start); ...+> } @@ expression d; expression n; expression io; identifier func; @@ func(...) { +struct resource *iores; <+... -io = dev_request_mem_region(d, n); -if (IS_ERR(io)) { +iores = dev_request_mem_resource(d, n); +if (IS_ERR(iores)) - return PTR_ERR(io); -} + return PTR_ERR(iores); +io = IOMEM(iores->start); ...+> } @@ expression d; expression n; expression io; identifier func; @@ func(...) { +struct resource *iores; <+... -io = dev_request_mem_region(d, n); -if (IS_ERR(io)) { - ret = PTR_ERR(io); +iores = dev_request_mem_resource(d, n); +if (IS_ERR(iores)) { + ret = PTR_ERR(iores); ... } +io = IOMEM(iores->start); ...+> } @@ expression d; expression n; expression io; identifier func; @@ func(...) { +struct resource *iores; <+... -io = dev_request_mem_region(d, n); +iores = dev_request_mem_resource(d, n); +if (IS_ERR(iores)) + return PTR_ERR(iores); +io = IOMEM(iores->start); ...+> } @@ identifier func; @@ func(...) { <+... struct resource *iores; -struct resource *iores; ...+> } // </smpl> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ata: disk_ata_drive: remove obsolete check for ID validityPeter Mamonov2015-11-021-17/+0
| | | | | | | | The id check does not work on some newer drives. Acked-by: Juergen Borleis <jbe@pengutronix.de> Signed-off-by: Peter Mamonov <pmamonov@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ata: intf_platform_ide: add OF bindingsPeter Mamonov2015-09-241-5/+25
| | | | | Signed-off-by: Peter Mamonov <pmamonov@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ata: ide-sff: fix integer overflow in ata_wait_ready()Peter Mamonov2015-09-041-1/+1
| | | | | Signed-off-by: Peter Mamonov <pmamonov@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ata: sata-imx: Add delay to prevent link timeoutSascha Hauer2015-07-311-0/+2
| | | | | | | | On the Utilite board this delay is necessary to prevent a link timeout. It seems the values written to GPR13 have to settle for some time before further accesses may be made. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* of: use 'const void *' for struct of_device_id.dataAntony Pavlov2015-04-301-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since 2011 barebox' of_device_id struct uses unsigned long type for data field: struct of_device_id { char *compatible; unsigned long data; }; Almost always struct of_device_id.data field are used as pointer and need 'unsigned long' casting. E.g. see 'git grep -A 4 of_device_id drivers/' output: drivers/ata/sata-imx.c:static __maybe_unused struct of_device_id imx_sata_dt_ids[] = { drivers/ata/sata-imx.c- { drivers/ata/sata-imx.c- .compatible = "fsl,imx6q-ahci", drivers/ata/sata-imx.c- .data = (unsigned long)&data_imx6, drivers/ata/sata-imx.c- }, { Here is of_device_id struct in linux kernel v4.0: struct of_device_id { char name[32]; char type[32]; char compatible[128]; const void *data; }; Changing of_device_id.data type to 'const void *data' will increase barebox' linux kernel compatibility and decrease number of 'unsigned long' casts. Part of the patch was done using the 'coccinelle' tool with the following semantic patch: @rule1@ identifier dev; identifier type; identifier func; @@ func(...) { <... - dev_get_drvdata(dev, (unsigned long *)&type) + dev_get_drvdata(dev, (const void **)&type) ...> } @rule2@ identifier dev; identifier type; identifier func; identifier data; @@ func(...) { <... - dev_get_drvdata(dev, (unsigned long *)&type->data) + dev_get_drvdata(dev, (const void **)&type->data) ...> } Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* AHCI: convert to streaming DMA opsLucas Stach2015-03-061-3/+10
| | | | | | | | | Move to the common streaming DMA ops in order to get rid of the direct usage of the ARM MMU functions for the cache maintenance. Signed-off-by: Lucas Stach <dev@lynxeye.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ARM: move DMA alloc functions to dma.hLucas Stach2015-03-061-0/+1
| | | | | | | | | | This better separates the DMA from the MMU functionality. Also move all drivers that only depends on asm/mmu.h for the alloc functions over to the common header. Signed-off-by: Lucas Stach <dev@lynxeye.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ARM: change dma_alloc/free_coherent to match other architecturesLucas Stach2015-03-061-6/+9
| | | | | | | | | As a lot drivers currently rely on the 1:1 virt->phys mapping on ARM we define DMA_ADDRESS_BROKEN to mark them. In order to use them on other architectures with a different mapping they need proper fixing. Signed-off-by: Lucas Stach <dev@lynxeye.de> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* sizes.h: move include/sizes.h to include/linux/sizes.hMasahiro Yamada2015-01-081-1/+1
| | | | | | | | | | | | | | This file originates in Linux. Linux has it under include/linux/ directory since commit dccd2304cc90. Let's move it to the same place as well in barebox. This commit was generated by the following commands: find -name '*.[chS]' | xargs sed -i -e 's:<sizes.h>:<linux/sizes.h>:' git mv include/sizes.h include/linux/ Signed-off-by: Masahiro Yamada <yamada.m@jp.panasonic.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* resource: Let dev_request_mem_region return an error pointerSascha Hauer2014-09-164-5/+13
| | | | | | For all users fix or add the error check. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* resource: Let dev_get_resource return an error pointerSascha Hauer2014-09-161-3/+3
| | | | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* resource: Let request_iomem_region return an error pointerSascha Hauer2014-09-161-0/+1
| | | | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ata: platform_ide: cleanup resource requestingSascha Hauer2014-09-121-25/+22
| | | | | | | - use dev_request_mem_region to simplify code - check return values and bail out Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* sandbox: allow "make ARCH=sandbox allyesconfig"Holger Schurig2014-07-221-0/+1
| | | | | | | | | | | | | Compiling the tree with allyesconfig is helpful because different compilers (gcc, clang) or static checkers (e.g. clang's scan-build) can then process and check more code. This patch introduces two new configuration symbols that Kconfig files can depend on. That way, code that is only working where a cache or DMA implementation exists can be opted out. Signed-off-by: Holger Schurig <holgerschurig@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* treewide: remove address of the Free Software FoundationAntony Pavlov2014-06-112-10/+0
| | | | | | | | | | | | | | | | | | The FSF address has changed; The FSF site says that address is Free Software Foundation 51 Franklin Street, Fifth Floor Boston, MA 02110-1301 USA (see http://www.fsf.org/about/contact/) Instead of updating it each time the address changes, just drop it completely treewide. Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Merge branch 'for-next/misc'Sascha Hauer2014-05-051-3/+0
|\
| * ata: pata-imx: Remove unused variableAlexander Shiyan2014-04-231-3/+0
| | | | | | | | | | Signed-off-by: Alexander Shiyan <shc_work@mail.ru> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | x86: Add support for IDE on the legacy I/O portsMichel Stam2014-04-082-21/+114
|/ | | | | Signed-off-by: Michel Stam <michel@reverze.net> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* sata-imx: i.MX53, use the internal 120MHz clock by defaultEric Bénard2014-02-101-1/+1
| | | | | | | | | | | | | | | | | this allows SATA to work on i.MX53 QSB-R : barebox@Freescale i.MX53 Quick Start-R Board:/ ata0.probe=1 imx-sata 10000000.sata: port 0: SATA link ok imx-sata 10000000.sata: port 0: Spinning up device... imx-sata 10000000.sata: port 0: ok. ata0: registered /dev/ata0 before this fix the log was : barebox@Freescale i.MX53 Quick Start-R Board:/ ata0.probe=1 imx-sata 10000000.sata: port 0: SATA link timeout set parameter: Connection timed out Signed-off-by: Eric Bénard <eric@eukrea.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Merge branch 'for-next/misc'Sascha Hauer2013-12-064-1/+5
|\ | | | | | | | | Conflicts: scripts/Makefile
| * barebox: remove double semicolonsAlexander Aring2013-11-181-1/+1
| | | | | | | | | | Signed-off-by: Alexander Aring <alex.aring@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * treewide: Add missing includesSascha Hauer2013-11-084-0/+4
| | | | | | | | | | | | | | | | A lot of files rely on include/driver.h including include/of.h (and this including include/errno.h. include the files explicitly so we can eventually get rid of including of.h from driver.h Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | ata: pata-imx: Add missing NULL entry in dt idsSascha Hauer2013-12-021-0/+2
|/ | | | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ata: ide-sff: Add missing wait for ready in write functionSascha Hauer2013-09-271-0/+3
| | | | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ata: Make 'already initialized' a debug messageSascha Hauer2013-06-211-1/+1
| | | | | | This is only interesting for the debug case. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ata: pata-imx: implement detect callback for hardware deviceSascha Hauer2013-06-211-0/+10
| | | | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ata: ide: embed ata_ioports into struct ide_port and export itSascha Hauer2013-06-213-49/+38
| | | | | | | | Embedding struct ata_ioports into struct ide_port saves us an allocation. Making it available to client drivers is necessary to give them access to struct ata_port which is needed in the next patch. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ata: i.MX pata: Add devicetree probe supportSascha Hauer2013-06-191-1/+15
| | | | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ata: ide: Allow to set the devicenameSascha Hauer2013-06-194-9/+20
| | | | | | | To get persistent devicenames under /dev/ allow to set the devicename from the driver instead of using "ata" unconditionally. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ata: i.MX sata: Add devicetree probe supportSascha Hauer2013-06-061-0/+13
| | | | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ata: ahci: Allow 'detect' on hardware deviceSascha Hauer2013-06-061-0/+16
| | | | | | Hook the detect callback to the hardware device. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ata: implement detectSascha Hauer2013-06-061-5/+19
| | | | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ata: ahci: only use lba48 on drives which support itSascha Hauer2013-06-061-4/+15
| | | | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ata: move ATA_ID_ fields and functions to include/Sascha Hauer2013-06-061-44/+0
| | | | | | | | We need ata_id_has_lba48() in another C file, so move the ATA_ID_* stuff to include/ata_drive.h like in the Linux Kernel. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* driver: Attach info callback to device, not to driverSascha Hauer2013-05-302-2/+2
| | | | | | | | Since the info is device specific and not driver specific, attach the callback to the device. This makes it possible to have a info callback for a device which does not have a driver attached. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Merge branch 'for-next/param'Sascha Hauer2013-05-061-11/+10
|\ | | | | | | | | Conflicts: drivers/mci/mci-core.c
| * ata: Use dev_add_param_bool for probe parameterSascha Hauer2013-04-111-11/+10
| | | | | | | | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | ata: Remove wrong DISK_DRIVE symbolAlexander Shiyan2013-04-301-1/+0
|/ | | | | | | DISK_DRIVE is missing in Kconfig, so remove the "select" statement. Signed-off-by: Alexander Shiyan <shc_work@mail.ru> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ata: ahci: refactor init functionsSascha Hauer2013-03-081-78/+58
| | | | | | Fold ahci_host_init and __ahci_host_init into ahci_add_host Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ata: ahci: implement init callbackSascha Hauer2013-03-082-39/+30
| | | | | | | | Now that we have framework support for delayed probing of ata devices implement it in the ahci driver to actually make use of it. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ata: Add init callback to ata_port_operationsSascha Hauer2013-03-081-0/+6
| | | | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ata: add ata logical device to defer probeSascha Hauer2013-03-081-8/+49
| | | | | | | | | | ata device usually take a long time to spin up, so it makes sense to only spend this time when the device is actually used. This adds a logical ata device and attaches a 'probe' parameter to it, similar to what MMC does. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* ata: ahci: fix wrong link checkSascha Hauer2013-03-081-1/+1
| | | | | | | | | | | | | | | | | | | | | The following commit accidently bailed out if the link is up, not when it's down as stated in the commit message. | commit a3f74d928ce73f37eab5b398e018aaeb42fd2ba4 | Author: Rob Herring <rob.herring@calxeda.com> | Date: Mon Feb 11 18:02:00 2013 +0100 | | ahci: handle COMINIT received during spin-up | | Some Intel SSDs can send a COMINIT after the initial COMRESET. This causes | the link to go down and we need to re-initialize the link. | | Signed-off-by: Rob Herring <rob.herring@calxeda.com> | Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> | Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* Merge branch 'for-next/misc'Sascha Hauer2013-03-045-28/+5
|\
| * Use new device_platform_driver() macro for driversAlexander Shiyan2013-02-134-28/+4
| | | | | | | | | | Signed-off-by: Alexander Shiyan <shc_work@mail.ru> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
| * sata-imx: fix depends on ARCH_IMXAlexander Aring2013-02-111-0/+1
| | | | | | | | | | Signed-off-by: Alexander Aring <alex.aring@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | ahci-generic: add oftree supportJean-Christophe PLAGNIOL-VILLARD2013-02-141-0/+9
| | | | | | | | | | | | | | | | | | calxeda use the generic driver but have it's own compatible cf Linux kernel Documentation Cc: Rob Herring <rob.herring@calxeda.com> Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
* | ahci: handle COMINIT received during spin-upRob Herring2013-02-131-2/+9
|/ | | | | | | | | Some Intel SSDs can send a COMINIT after the initial COMRESET. This causes the link to go down and we need to re-initialize the link. Signed-off-by: Rob Herring <rob.herring@calxeda.com> Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>