Commit graph

146 commits

Author SHA1 Message Date
Solomon Peachy
a84176122c Fix two variable-set-but-not-used warnings
(found using -Os with gcc494 on the nano2g)

Change-Id: If0deee3e3cde50e6bf5aff595bebc0f134dcc393
2020-07-24 23:26:15 -04:00
Michael Sevakis
1654efc313 Unify storage threads into one
* 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
2017-10-26 14:35:41 -04:00
Michael Sevakis
58b849c451 Move intrinsic RTC implmentation differences to driver files
Some drivers set tm_wday just fine and do not need it coerced to
be correct. Others set tm_yday, so don't overwrite what the driver
sets; just zero it inside if it can't fill the field. Move calls
to set_day_of_week() to the sorts of drivers that presumably
required the hammer (FS#11814) in get_time() where the weekday
isn't locked to the date.

Change-Id: Idd0ded6bfc9d9f48fcc1a6074068164c42fcf24a
2017-01-26 23:07:49 -05:00
Cástor Muñoz
9a4cd2eaee iPod Nano2G: add IPOD_ACCESSORY_PROTOCOL
Change-Id: I78a19972624504bc802d96b9b8e9cec132164c2c
2016-05-14 19:39:09 +02:00
Cástor Muñoz
d405026ca8 iPod Nano2G: add HAVE_SERIAL
Change-Id: I46dca69c6708d3e6189f66e70badf0a594bac00b
2016-05-13 23:23:35 +02:00
Michael Sparmann
bc56811a0e iPod Nano 2G and Classic: Fix power and charging detection.
This should allow FireWire charging to work on these devices.
It also adds charging state detection on the iPod Classic.

(cherry picked from commit fa86fec4fb)

On Classic (and probably Nano 2G), it seems that the 100/500mA limit
applies only to USB chargers, when FW is connected it supplies all the
power (even if USB is also connected) and USB current limit does not
affect to FW charging, therefore the limit is only set when USB is
connected.

Change-Id: I7c6bab1b6a0f295367999c45faeda6085c3fb091
Signed-off-by: Cástor Muñoz <cmvidal@gmail.com>
2016-02-14 15:42:54 +01:00
Marcin Bukat
89ba7e818c Get rid of stupid _backlight_* function names
_remote_backlight_* and _buttonlight_* are cleaned as well

Change-Id: I73653752831bbe170c26ba95d3bc04c2e3a5cf30
2015-01-12 11:09:27 +01:00
Thomas Jarosch
85c98bc63c Improve readability by adding parenthesis
Change-Id: Iff51ab441a59f1ba842132b809a49d1fe7232e05
2015-01-11 18:19:26 +01:00
Jonathan Gordon
b37e6bc8c1 lcd drivers: Convert lcd_[remote_]framebuffer to a pointer
Change all lcd drivers to using a pointer to the static framebuffer
instead of directly accessing the static array. This will let us
later do fun things like dynamic framebuffer sizes (RaaA) or
ability to use different buffers for different layers (dynamic
skin backdrops!)

Change-Id: I0a4d58a9d7b55e6c932131b929e5d4c9f9414b06
2012-02-28 11:44:59 +11:00
Rafaël Carré
95cf63b294 button-target.h : move prototypes to button.h
no need to define BUTTON_REMOTE anymore

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31620 a1c6a512-1295-4272-9138-f99709370657
2012-01-08 00:07:19 +00:00
Thomas Martitz
c1bd9b0361 Rework powermgmt to enable code re-use on appliation and sims.
* Introduce CONFIG_BATTERY_MEASURE define, to allow targets (application)
to break powermgmt.c's assumption about the ability to read battery voltage.
There's now additionally percentage (android) and remaining time measure
(maemo). No measure at all also works (sdl app). If voltage can't be measured,
then battery_level() is king and it'll be used for power_history and runtime
estimation.

* Implement target's API in the simulator, i.e. _battery_voltage(), so it
doesn't need to implement it's own powermgmt.c and other stubs. Now
the sim behaves much more like a native target, although it still
changes the simulated battery voltage quickly,

* Other changes include include renaming battery_adc_voltage() to
_battery_voltage(), for consistency with the new target functions and
making some of the apps code aware that voltage and runtime estimation
is not always available.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31548 a1c6a512-1295-4272-9138-f99709370657
2012-01-03 23:44:38 +00:00
Boris Gjenero
14c2e677fd Make more local functions static.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31395 a1c6a512-1295-4272-9138-f99709370657
2011-12-21 17:36:18 +00:00
Michael Sevakis
09769827fe Swap red and yellow for green on r31339's cranky builds.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31340 a1c6a512-1295-4272-9138-f99709370657
2011-12-17 07:54:00 +00:00
Jonathan Gordon
ea2a3ee7a8 Fix the gpl notice in the previous commits new files, and fix the yelow gevearts naughtily ignored
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30996 a1c6a512-1295-4272-9138-f99709370657
2011-11-16 10:37:48 +00:00
Jonathan Gordon
be716c0be8 Finally commit FS#5111 - piezo clicker for ipods!
Origional implementation by Robert Keevil with contributions from Frederik Vestre,  Stoyan Stratev, Craig Elliott, Michael Sparmann,  Thomas Schott, Rosso Maltese, and syncs from a bunch of other people!

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30995 a1c6a512-1295-4272-9138-f99709370657
2011-11-16 10:25:43 +00:00
Torne Wuff
754b1572fb Remove superfluous executable bits on a bunch of files.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29986 a1c6a512-1295-4272-9138-f99709370657
2011-06-08 14:22:03 +00:00
Andree Buschmann
71e35542dc Fix issues with iPod nano 2G displays reported on the forums. The voltage supply seems to be too low for several LCDs. The buzz of the display is still significantly lower than with OF.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29764 a1c6a512-1295-4272-9138-f99709370657
2011-04-22 19:06:16 +00:00
Michael Sevakis
12375d1d3a Merge functionality of wakeups and semaphores-- fewer APIs and object types. semaphore_wait takes a timeout now so codecs and plugins have to be made incompatible. Don't make semaphores for targets not using them.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29492 a1c6a512-1295-4272-9138-f99709370657
2011-03-02 08:49:38 +00:00
Michael Sparmann
f8fde296a6 Remove files accidentally commited in 28953
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28959 a1c6a512-1295-4272-9138-f99709370657
2011-01-03 13:24:27 +00:00
Michael Sparmann
152847977a New port: iPod Classic (also known as iPod 6G/6.5G/7G)
Major known issues:
- No bootloader yet
- No support for the first-generation 160GB CE-ATA hard disk drive yet
- Audio playback is slow, only FLAC seems to reach realtime


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28953 a1c6a512-1295-4272-9138-f99709370657
2011-01-02 23:16:27 +00:00
Andree Buschmann
5f43d0db5c Fix comment.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28940 a1c6a512-1295-4272-9138-f99709370657
2011-01-01 20:10:19 +00:00
Andree Buschmann
21b89aab5a Save some binsize in LCD driver of iPod nano 2G. No impact to speed.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28938 a1c6a512-1295-4272-9138-f99709370657
2011-01-01 19:25:09 +00:00
Andree Buschmann
3f01a82af0 Submitted the wrong file with r28933.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28934 a1c6a512-1295-4272-9138-f99709370657
2010-12-30 15:46:39 +00:00
Andree Buschmann
e91091b530 Major speedup of iPod nano 2G. Part 6: Use faster LCD interface configuration. Tested for LDS and ILI type displays. Speedup is +99% for RGB and +5% for YUV.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28868 a1c6a512-1295-4272-9138-f99709370657
2010-12-21 06:59:17 +00:00
Andree Buschmann
d215eb7c70 iPod nano 2G: Use LCD_PHTIME = 0x22 for both LDS and ILI type of displays. Significantly improves speed on ILI type (factor of ~2.5x).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28861 a1c6a512-1295-4272-9138-f99709370657
2010-12-19 21:22:31 +00:00
Andree Buschmann
8205e54abd iPod nano2g ILI type LCD displays need big endian configuration for the LCD interface.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28858 a1c6a512-1295-4272-9138-f99709370657
2010-12-19 19:06:55 +00:00
Andree Buschmann
c43fb3cf1b Add short sleep after wakeup of LDS176 type LCD to avoid occasional shift of first full screen update.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28827 a1c6a512-1295-4272-9138-f99709370657
2010-12-13 21:13:10 +00:00
Andree Buschmann
abf28a9586 Speedup of iPod nano 2G YUV blitting by 3%.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28825 a1c6a512-1295-4272-9138-f99709370657
2010-12-13 20:56:53 +00:00
Andree Buschmann
298bbe8d3c FS#11807 - Major speedup of iPod nano 2G. Part 5: Introduce asm for RGB screen updates, set LCD_PHTIME to Apple's default for LDS176 type LCD's.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28824 a1c6a512-1295-4272-9138-f99709370657
2010-12-13 19:58:04 +00:00
Andree Buschmann
395d72f71a FS#11807 - Major speedup of iPod nano 2G. Part 4: Introduce asm for yuv blitting. Overall speedup of part1-4 is +50% for RGB and +93% for YUV.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28813 a1c6a512-1295-4272-9138-f99709370657
2010-12-12 15:23:20 +00:00
Andree Buschmann
eadff40863 FS#11807 - Major speedup of iPod nano 2G. Part 3: Unify different write commands. No change in speed.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28812 a1c6a512-1295-4272-9138-f99709370657
2010-12-12 15:16:55 +00:00
Andree Buschmann
335df1d040 FS#11807 - Major speedup of iPod nano 2G. Part 2: Use 16 bit data width and simplify write commands. Gives another +27% for YUV.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28811 a1c6a512-1295-4272-9138-f99709370657
2010-12-12 15:10:45 +00:00
Andree Buschmann
d192bdf11e FS#11708 - Major speedup of iPod nano 2G. Part 1: Loop unrolling and reduction of FIFO register polling. +50% for RGB, +34% for YUV.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28809 a1c6a512-1295-4272-9138-f99709370657
2010-12-12 15:01:36 +00:00
Andree Buschmann
2f9c4dfa39 iPod nano 2G: Call lcd_update_rect() in lcd_update() instead of using an own implementation.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28794 a1c6a512-1295-4272-9138-f99709370657
2010-12-11 10:38:41 +00:00
Andree Buschmann
1b093cf297 Remove tabs
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28719 a1c6a512-1295-4272-9138-f99709370657
2010-12-01 18:35:01 +00:00
Michael Sparmann
6574040b18 iPod Nano 2G LCD sleep: Powering down LDO2 also affects USB, so we can't do that to shut off the LCD. Leave it on for now, and use the lightweight approach for waking up the Leadis LCD.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28601 a1c6a512-1295-4272-9138-f99709370657
2010-11-14 20:39:18 +00:00
Michael Sparmann
cdbaa09fb7 iPod Nano 2G LCD sleep: Send LCD_EVENT_ACTIVATION event
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28593 a1c6a512-1295-4272-9138-f99709370657
2010-11-14 15:46:17 +00:00
Michael Sparmann
a5ad3f8a72 iPod Nano 2G: Implement LCD sleep (FS#11604 by Franz-Josef Haider), adds up to 5 hours of battery life
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28591 a1c6a512-1295-4272-9138-f99709370657
2010-11-14 15:29:05 +00:00
Michael Sparmann
a8e2bb361c iPod Nano 2G FTL: Remove some meaningless code in ftl_init
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28570 a1c6a512-1295-4272-9138-f99709370657
2010-11-13 11:07:42 +00:00
Michael Sparmann
42973f7a32 Fix a small bug that prevented the iPod Nano 2G NAND driver from detecting interleaved write-capable chips.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28448 a1c6a512-1295-4272-9138-f99709370657
2010-11-02 15:26:04 +00:00
Michael Sparmann
01cdb6a21f Fix screendump on iPod Nano 2G by increasing the usb thread stack size and reducing the stack usage of FAT and storage functions
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28356 a1c6a512-1295-4272-9138-f99709370657
2010-10-25 12:36:57 +00:00
Andree Buschmann
86de79171b Submit FS#11646. Reduce voltage supply for iPod nano 2G LCD. Significantly reduces buzzing sound of LDS176 type displays.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28190 a1c6a512-1295-4272-9138-f99709370657
2010-10-01 18:09:10 +00:00
Andree Buschmann
3131fb9712 Roll back r28164 as this change introduced LCD issues on some nano 2G.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28166 a1c6a512-1295-4272-9138-f99709370657
2010-09-25 23:37:12 +00:00
Andree Buschmann
86d5f44b4a Reduce LCD voltage supply to 2500 mV to avoid humming noise of nano 2G.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28164 a1c6a512-1295-4272-9138-f99709370657
2010-09-25 21:46:04 +00:00
Andree Buschmann
6a9cabc434 Implement lineout en-/disable for WM8975 and activate it for iPod nano 2G.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28159 a1c6a512-1295-4272-9138-f99709370657
2010-09-24 22:42:06 +00:00
Michael Sparmann
2c24a67900 Some Nano2G FTL cosmetics
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27851 a1c6a512-1295-4272-9138-f99709370657
2010-08-21 14:40:53 +00:00
Michael Sparmann
aa0973ded2 Fix two rather annoying Nano2G FTL bugs: 1. Fix a null pointer dereference/write, 2. Make sure all error return codes are negative.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27841 a1c6a512-1295-4272-9138-f99709370657
2010-08-17 23:56:15 +00:00
Michael Sparmann
c65a8e0755 emBIOS backports part four: Add a lot of DEBUGF()s to the FTL code, and return proper error codes instead of panicing in a lot of error cases.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27783 a1c6a512-1295-4272-9138-f99709370657
2010-08-12 08:49:54 +00:00
Michael Sparmann
b4d6d1e643 emBIOS backports part three: Make the NAND flash driver return more useful error codes if initialization fails.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27782 a1c6a512-1295-4272-9138-f99709370657
2010-08-12 08:49:12 +00:00
Michael Sparmann
6b389305f6 emBIOS backports part two: Fix a stupid global variable *instantiation* in a header file, which might have caused all hell of trouble.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27781 a1c6a512-1295-4272-9138-f99709370657
2010-08-12 08:46:52 +00:00