summaryrefslogtreecommitdiff
path: root/firmware/export/ata.h (follow)
Commit message (Collapse)AuthorAge
* Unify storage threads into oneMichael Sevakis2017-10-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Editing a bunch of drivers' thread routines in order to implement a new feature is tedious. * No matter the number of storage drivers, they share one thread. No extra threads needed for CONFIG_STORAGE_MULTI. * Each has an event callback called by the storage thread. * A default callback is provided to fake sleeping in order to trigger idle callbacks. It could also do other default processing. Changes to it will be part of driver code without editing each one. * Drivers may sleep and wake as they please as long as they give a low pulse on their storage bit to ask to go into sleep mode. Idle callback is called on its behalf and driver immediately put into sleep mode. * Drivers may indicate they are to continue receiving events in USB mode, otherwise they receve nothing until disconnect (they do receive SYS_USB_DISCONNECTED no matter what). * Rework a few things to keep the callback implementation sane and maintainable. ata.c was dreadful with all those bools; make it a state machine and easier to follow. Remove last_user_activity; it has no purpose that isn't served by keeping the disk active through last_disk_activity instead. * Even-out stack sizes partly because of a lack of a decent place to define them by driver or SoC or whatever; it doesn't seem too critical to do that anyway. Many are simply too large while at least one isn't really adequate. They may be individually overridden if necessary (figure out where). The thread uses the greatest size demanded. Newer file code is much more frugal with stack space. I barely see use crack 50% after idle callbacks (usually mid-40s). Card insert/eject doesn't demand much. * No forcing of idle callbacks. If it isn't necessary for one or more non-disk storage types, it really isn't any more necessary for disk storage. Besides, it makes the whole thing easier to implement. Change-Id: Id30c284d82a8af66e47f2cfe104c52cbd8aa7215
* iPod Classic: ATA SMART updatesCástor Muñoz2016-02-14
| | | | | | | | - Add description for attributes supported by Samsung HS081HA (80Gb) and HS161JQ (CEATA 160Gb). - Show error code when ata_read_smart() fails. Change-Id: I618cc4f37d139fc90f596e2cf3a751346b27deb6
* iPod Classic: reads HDD S.M.A.R.T. dataCástor Muñoz2015-10-07
| | | | | | | | Adds ata_read_smart() function to storage ATA driver, current SMART data can be displayed and optionally written to hard disk using System->Debug menu. Change-Id: Ie8817bb311d5d956df2f0fbfaf554e2d53e89a93
* Cleanup MV/MD macros a little.Michael Sevakis2013-08-17
| | | | | | | | | | When using variadic macros there's no need for IF_MD2/IF_MV2 to deal with function parameters. IF_MD/IF_MV are enough. Throw in IF_MD_DRV/ID_MV_VOL that return the parameter if MD/MV, or 0 if not. Change-Id: I7605e6039f3be19cb47110c84dcb3c5516f2c3eb
* FS#12418 - Merge prototypes from ata-target.h files into new file ↵Boris Gjenero2011-12-08
| | | | | | | | | | | ata-driver.h. After this change: - ata.h is for users of ata.c - ata-driver.h is for functions implemented by target-specific code and used by ata.c - ata-target.h is for target-specific defines git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31182 a1c6a512-1295-4272-9138-f99709370657
* Add INIT_ATTR to storage_init() when possibleRafaël Carré2011-11-20
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31036 a1c6a512-1295-4272-9138-f99709370657
* Fix yellowMichael Sparmann2011-01-02
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28952 a1c6a512-1295-4272-9138-f99709370657
* Fix redMichael Sparmann2011-01-02
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28951 a1c6a512-1295-4272-9138-f99709370657
* Commit FS#9545, storage cleanup and multi-driver supportFrank Gevaerts2009-07-17
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21933 a1c6a512-1295-4272-9138-f99709370657
* Commit the common portion of FS#9708: ATA (IDE) DMA by Boris Gjenero with a ↵Michael Sevakis2009-03-12
| | | | | | couple cosmetic tweaks and without the inclusion of 'FS#9721: No error check after writes in ata.c'changes (which can be done separately). No code is changed for targets without HAVE_ATA_DMA defined other than to not display DMA modes in the View Disk Info debug screen if not using DMA (Gigabeat F/X/S were). No target uses the code yet but Gigabeat S use will follow shortly. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20298 a1c6a512-1295-4272-9138-f99709370657
* *_hard_reset() is only used inside ata.c, so there's no need to export it to ↵Frank Gevaerts2008-11-04
| | | | | | the world git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19004 a1c6a512-1295-4272-9138-f99709370657
* conditionalise *_get_info() to get some binsize backFrank Gevaerts2008-11-01
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18965 a1c6a512-1295-4272-9138-f99709370657
* Apply FS#9500. This adds a storage_*() abstraction to replace ata_*(). To do ↵Frank Gevaerts2008-11-01
| | | | | | | | | that, it also introduces sd_*, nand_*, and mmc_*. This should be a good first step to allow multi-driver targets, like the Elio (ATA/SD), or the D2 (NAND/SD). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18960 a1c6a512-1295-4272-9138-f99709370657
* Updated our source code header to explicitly mention that we are GPL v2 orDaniel Stenberg2008-06-28
| | | | | | | | | later. We still need to hunt down snippets used that are not. 1324 modified files... http://www.rockbox.org/mail/archive/rockbox-dev-archive-2008-06/0060.shtml git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17847 a1c6a512-1295-4272-9138-f99709370657
* Bring Gigabeat S bootloader one step close to a release version.Michael Sevakis2008-05-10
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17442 a1c6a512-1295-4272-9138-f99709370657
* remove the 2nd last evil use of ata_disk_is_active() in apps/Jonathan Gordon2008-04-30
| | | | | | | the last abuse is in battery bench git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17292 a1c6a512-1295-4272-9138-f99709370657
* Do the CONFIG_LED defineJonathan Gordon2007-02-18
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12383 a1c6a512-1295-4272-9138-f99709370657
* Fix most (all?) CONFIG_LED warnings.Magnus Holmgren2007-02-17
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12370 a1c6a512-1295-4272-9138-f99709370657
* Permanently enable powering down the disk when it's sleeping for supported ↵Nils Wallménius2007-01-23
| | | | | | targets (iriver h1xx, h3xx and h10, iaudio x5, gigabeat and archos recorders) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12094 a1c6a512-1295-4272-9138-f99709370657
* Prevent the click of death when connecting an ipod to usb.Miika Pekkarinen2006-11-29
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11622 a1c6a512-1295-4272-9138-f99709370657
* * changes to ata.c - idle callbacks are called after 2 sec of real idle,Jonathan Gordon2006-11-08
| | | | | | | | | | | | and shutdown and usb (it makes sense here). ata_sleep doesnt get broken by callbacks. * allow ata_sleep() at the end of buffering again * config block uses ata_idle instead of delayed sector when saving * remove delayed sector code from ata_mmc.c (idle callbacks are not yet implemented for ata_mmc.c tho) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11461 a1c6a512-1295-4272-9138-f99709370657
* Removed unused ata_standby(), changed return type of ata_sleep() to void, ↵Jens Arnold2005-11-07
| | | | | | removed misleading comment from ata.h git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7782 a1c6a512-1295-4272-9138-f99709370657
* Multiple choice LED configuration instead of HAVE_LED. Removes erroneous MMC ↵Jens Arnold2005-06-04
| | | | | | icon display on iriver, and saves some code on Ondio. Removed invert_led() as it is no longer used. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6568 a1c6a512-1295-4272-9138-f99709370657
* Patch #868645 by Philipp Pertermann, volume triggered recording for the ↵Linus Nielsen Feltzing2005-04-04
| | | | | | Archos recording devices git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6243 a1c6a512-1295-4272-9138-f99709370657
* prepared to mount multiple partitions into one logical file system (most ↵Jörg Hohensohn2004-12-28
| | | | | | useful for Ondio, internal memory + external MMC) git-svn-id: svn://svn.rockbox.org/rockbox/trunk@5514 a1c6a512-1295-4272-9138-f99709370657
* Const policed pointer arguments to functions, part 2Jens Arnold2004-08-17
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@4996 a1c6a512-1295-4272-9138-f99709370657
* Experiment: enable ATA STANDBY when switching to USB modeLinus Nielsen Feltzing2003-05-10
| | | | git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3668 a1c6a512-1295-4272-9138-f99709370657
* Move publicly (from apps) accessed files from drivers/ to export/.Daniel Stenberg2003-02-07
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3219 a1c6a512-1295-4272-9138-f99709370657