Commit graph

78 commits

Author SHA1 Message Date
William Wilgus
3237ae4a4f LCD core move buf ptr and address look up function viewport struct
I'm currently running up against the limitations of the lcd_draw functions
I want these functions to be able to be used on any size buffer not
just buffers with a stride matching the underlying device

[DONE] allow the framebuffer to be decoupled from the device framebuffer
[DONE need examples] allow for some simple blit like transformations
[DONE] remove the device framebuffer from the plugin api
[DONE}ditto remote framebuffer
[DONE] remove _viewport_get_framebuffer you can call struct *vp = lcd_set_viewport(NULL) and vp->buffer->fb_ptr

while remote lcds may compile (and work in the sim) its not been tested on targets

[FIXED] backdrops need work to be screen agnostic

[FIXED] screen statusbar is not being combined into the main viewport correctly yet

[FIXED] screen elements are displayed incorrectly  after switch to void*

[FIXED] core didn't restore proper viewport on splash etc.

[NEEDS TESTING] remote lcd garbled data

[FIXED] osd lib garbled screen on bmp_part

[FIXED] grey_set_vp needs to return old viewport like lcd_set_viewport

[FIXED] Viewport update now handles viewports with differing buffers/strides by copying to the main buffer

[FIXED] splash on top of WPS leaves old framebuffer data (doesn't redraw)
[UPDATE] refined this a bit more to have clear_viewport set the clean bit and have skin_render do its own screen clear
scrolling viewports no longer trigger wps refresh
also fixed a bug where guisyncyesno was displaying and then disappearing

[ADDED!] New LCD macros that allow you to create properly size frame buffers in you desired size without wasting bytes
(LCD_ and LCD_REMOTE_)
LCD_STRIDE(w, h) same as STRIDE_MAIN
LCD_FBSTRIDE(w, h) returns target specific stride for a buffer W x H
LCD_NBELEMS(w, h) returns the number of fb_data sized elemenst needed for a buffer W x H
LCD_NATIVE_STRIDE(s) conversion between rockbox native vertical and lcd native stride (2bitH)
test_viewports.c has an example of usage

[FIXED!!] 2bit targets don't respect non-native strides
[FIXED] Few define snags

Change-Id: I0d04c3834e464eca84a5a715743a297a0cefd0af
2020-10-26 12:28:48 -04:00
Solomon Peachy
09785a8499 fix more yellow
Change-Id: I74bad58707d05ea167169d4315c05eb0cd1c8b7b
2020-10-13 17:23:56 -04:00
Solomon Peachy
b94db707fb Fix more warnings.
Change-Id: Ib3a9fc622a46b1fc72e94dcbc6d29d2e430cd81b
2020-10-13 15:48:31 -04:00
Marcin Bukat
9ffd9327e3 Fix red/yellow
Change-Id: Ie01251af2cd843979b5fdefcfa541ba377d13bd7
2015-01-12 12:02:24 +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
Marcin Bukat
bd10245e89 MPIO HD300: Fix occasional scrollstrip hang
Scrollstrip works as quadrature encoder. We set pin change
interrupt for both edges of signal both lines and sample the state
in ISR. From time to time the sequence is out-of-sync which was
properly detected but erroneously handled leaving scrollstip
interrupts disabled.

Change-Id: I08e4f99c6c27df0f8180aa16e6e1d9e4203bafa7
Reviewed-on: http://gerrit.rockbox.org/782
Reviewed-by: Marcin Bukat <marcin.bukat@gmail.com>
Tested: Marcin Bukat <marcin.bukat@gmail.com>
2014-04-15 08:18:56 +02:00
Marcin Bukat
1e7febe940 coldfire: fix bootloader builds
In b31c856 startup code section was renamed but boot.lds
linker scripts were not updated accordingly.

Change-Id: I9c9893ec2e199ac2555007a1d23e109ca0daea28
2014-01-18 22:21:00 +01:00
Marcin Bukat
a02f863eef coldfire: Use single app.lds script for all coldfires.
The only true difference in this platform is the amount of iram
between MCF5249 and MCF5250. Instead of duplicating the file
simply use one with proper ifdefs.

Change-Id: Ifd56ebd2666813633502e3b5d83669424659c039
Reviewed-on: http://gerrit.rockbox.org/713
Reviewed-by: Thomas Martitz <kugel@rockbox.org>
Reviewed-by: Marcin Bukat <marcin.bukat@gmail.com>
2014-01-15 21:15:14 +01:00
Thomas Martitz
22b33d6eb8 Add missing kernel.h includes (hopefully all of them), take #2.
Change-Id: I62cedf992bb096987050621cfc34f0432e9da170
2014-01-05 20:42:48 +01:00
Marcin Bukat
b35f82c91f HD300: Fix crash in bootloader introduced by 36281c4
Uninitialized struct scroll which is used to pass state between
scrollstrip ISR and button_read_device() can bomb out whole
button subsytem.

Change-Id: I3b415c22cfee4181b2132cddaeff68797c7cc0ea
2012-11-13 13:36:23 +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
Marcin Bukat
36281c4cc9 MPIO HD300: Fix scrollstip issue at driver level.
Scrollstrip (as well as scrollwheel on ipods/sansas) works like
quadrature encoder. The states of input lines are tracked by the
gpio ISR and when the sequence is correct, appropriate button
event is pushed to the button queue directly. The downside of
this implementation is that scrollstrip doesn't emit _REL
events which has some weird consequences. For the scrollwheels
some hack have been crafted in action system to accomodate for
this. I don't like this approach. IMO the correct fix is to
properly emit _REL event when the user stops interacting with
the device or reverses the direction of the move. This patch
implements timeout which forces to emit _REL when expired.

Change-Id: I588ac5810dd2ab00c68935d23a62979cb1c2a912
2012-01-25 09:07:52 +01:00
Marcin Bukat
e94d1b0ab0 MPIO HD200/HD300: Decrease ADC scanrate.
The adclk is decreased 4x. This solves problems with battery
readout drop during system startup.

Change-Id: I46d7c4b9ffcfdc812a6dd2a932c9e397d33c1168
2012-01-24 12:05:07 +01: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
e4dbcc414b FS#12418 - Merge prototypes from ata-target.h files into new file 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
2011-12-08 21:23:53 +00:00
Marcin Bukat
f4b74b269a MPIO HD300: vastly improve sound quality. This unfortunately means reverting r28797 which introduced poping noise
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30904 a1c6a512-1295-4272-9138-f99709370657
2011-11-05 14:01:22 +00:00
Michael Sevakis
d4800fa385 Coldfire: Fix the modification of IMR. Interrupts must be masked at the core level at at least the level of the interrupt being masked. Not following the datasheet and relying strictly on and/or_l causes unhandled 'Levelx' exceptions (showing itself quite often in PCM mixer work which more greatly stresses PCM lockout).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30009 a1c6a512-1295-4272-9138-f99709370657
2011-06-17 03:09:47 +00:00
Bertrik Sikken
9c33dca647 Fix tabs in .c and .h files in firmware/
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29832 a1c6a512-1295-4272-9138-f99709370657
2011-05-08 11:37:18 +00:00
Nils Wallménius
54424fa616 Fix warning when linking booltoaders with the new toolchain by marking .bss section NOLOAD, thanks for gevaerts for testing on his x5.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29037 a1c6a512-1295-4272-9138-f99709370657
2011-01-12 21:24:44 +00:00
Marcin Bukat
906d2f08ed HD300 - calibrate discharge curve
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28998 a1c6a512-1295-4272-9138-f99709370657
2011-01-07 21:33:06 +00:00
Michael Sparmann
9339be1279 Rework ATA driver to get rid of lots of target-specific constants and allow for non-memory-mapped task file registers.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28950 a1c6a512-1295-4272-9138-f99709370657
2011-01-02 22:51:47 +00:00
Marcin Bukat
dddab54151 HD300 - Fix bootloader freeze introduced in r28799. DMA transfer hangs for some reason when cpu runs @11MHz in bootloader.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28867 a1c6a512-1295-4272-9138-f99709370657
2010-12-20 21:13:27 +00:00
Marcin Bukat
b6499f846a fix typo, thanks to Luka_S for catching this
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28846 a1c6a512-1295-4272-9138-f99709370657
2010-12-16 22:38:59 +00:00
Marcin Bukat
21955350b4 HD300 - hacky workaround which makes USB bridge work in rockbox
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28845 a1c6a512-1295-4272-9138-f99709370657
2010-12-16 22:07:07 +00:00
Marcin Bukat
8e1021bd4c HD300 - further speedup of lcd_update() by utilizing DMA transfer when unboosted. The gain is 438 -> 728 fps @ 45MHz.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28799 a1c6a512-1295-4272-9138-f99709370657
2010-12-11 23:55:14 +00:00
Marcin Bukat
3eee12ed23 HD300 - tweak lcd_update() (4-5% speedup)
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28797 a1c6a512-1295-4272-9138-f99709370657
2010-12-11 22:36:28 +00:00
Marcin Bukat
18accc018b HD300 - do not handle scrollstrip events when hold is on
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28782 a1c6a512-1295-4272-9138-f99709370657
2010-12-10 15:12:16 +00:00
Marcin Bukat
0358e7b864 MPIO HD200, HD300: Make USB bridge handling more correct (this doesn't solve problems with USB inside rockbox on HD300 unfortunately).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28780 a1c6a512-1295-4272-9138-f99709370657
2010-12-09 11:31:08 +00:00
Marcin Bukat
db1e051bf0 HD300 - decrease touchstrip sensitivity
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28707 a1c6a512-1295-4272-9138-f99709370657
2010-11-29 13:28:28 +00:00
Marcin Bukat
9a24892e2e MPIO HD300 - initial commit
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28680 a1c6a512-1295-4272-9138-f99709370657
2010-11-26 23:28:08 +00:00
Marcin Bukat
123bebeada MPIO: move files a bit in preparation for HD300 port
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28567 a1c6a512-1295-4272-9138-f99709370657
2010-11-12 21:52:29 +00:00
Marcin Bukat
59ba8fea22 MPIO HD200: rename button defines to adhere how they are labeled on the device.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28443 a1c6a512-1295-4272-9138-f99709370657
2010-11-02 10:44:34 +00:00
Marcin Bukat
082c7d3c6b Set svn properties
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28326 a1c6a512-1295-4272-9138-f99709370657
2010-10-22 12:28:43 +00:00
Marcin Bukat
38edf679f2 MPIO HD200 - squash long standing bug in bootloader which prevented booting OF if doing coldstart on battery only.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28324 a1c6a512-1295-4272-9138-f99709370657
2010-10-22 12:11:58 +00:00
Rafaël Carré
66f8fb52a9 */app.lds: remove STUBOFFSET
This is related to gdb, and gdb can only work on SH and ifp
This was mistakenly kept when app.lds was forked for each SoC
Side-effect: fix DEBUG builds when the rockbox binary is expected to
be loaded at the start of DRAM and there is no runtime relocation

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28124 a1c6a512-1295-4272-9138-f99709370657
2010-09-20 17:09:55 +00:00
Marcin Bukat
a86b08e4fa HD200 - Use DMA transfers in lcd_update() and lcd_update_rect(). Gives 12-26% speedup.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27757 a1c6a512-1295-4272-9138-f99709370657
2010-08-08 18:41:19 +00:00
Marcin Bukat
59ded69c96 HD200: Add timeout in usb_enable(false) to prevent infinite loop when something goes wrong.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27468 a1c6a512-1295-4272-9138-f99709370657
2010-07-17 11:38:47 +00:00
Marcin Bukat
5b5275a6c9 HD200: Change move.w -> move.b in lcd-as-hd200.S when doing transfers to lcd to explicity show that lcd bus is 8bits wide.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27445 a1c6a512-1295-4272-9138-f99709370657
2010-07-16 07:24:08 +00:00
Jens Arnold
701dafdf30 MPIO HD200 grey blitting: Use line reads for the pixel values as well. Almost doubles the ISR speed (47% -> 24% load), giving 42% faster greylib framebuffer updates.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27444 a1c6a512-1295-4272-9138-f99709370657
2010-07-16 07:08:39 +00:00
Marcin Bukat
d367ab41e3 HD200 - calibrate battery indicator based on measurements and battery_benches
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27350 a1c6a512-1295-4272-9138-f99709370657
2010-07-08 16:53:09 +00:00
Marcin Bukat
60d8cff4f6 HD200 - fix misleading comment in system-hd200.c
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27328 a1c6a512-1295-4272-9138-f99709370657
2010-07-07 07:09:53 +00:00
Marcin Bukat
f99e4fb3bf HD200 - turn off charging IC by default
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27315 a1c6a512-1295-4272-9138-f99709370657
2010-07-06 17:30:05 +00:00
Marcin Bukat
3cdee0f09b HD200 - Fix GPIO setup in button_init_device()- this change fixes sound output broken in r27258. Slightly adjust main buttons reading routine so key reading is more reliable with and without remote present
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27307 a1c6a512-1295-4272-9138-f99709370657
2010-07-06 14:44:41 +00:00
Marcin Bukat
7c908bbeda HD200 - more work on remote handling
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27306 a1c6a512-1295-4272-9138-f99709370657
2010-07-06 14:43:58 +00:00
Marcin Bukat
6e40988803 HD200 - Increase ADC clock when boosted. Scan all 4 ADC channels during system tick
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27262 a1c6a512-1295-4272-9138-f99709370657
2010-07-03 21:44:49 +00:00
Marcin Bukat
66381088e7 HD200 - add missed defines for remote buttons and remote_button_hold() function prototype in button-target.h
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27259 a1c6a512-1295-4272-9138-f99709370657
2010-07-03 20:54:02 +00:00
Marcin Bukat
8d3591ae80 HD200 - add support for remote in button_read_device()
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27258 a1c6a512-1295-4272-9138-f99709370657
2010-07-03 20:20:42 +00:00
Marcin Bukat
971a6e9c94 HD200 - Setup codec as I2S master and enable recording
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27250 a1c6a512-1295-4272-9138-f99709370657
2010-07-02 21:09:28 +00:00
Marcin Bukat
a316ebe65b HD200 - use line transfers in lcd_grey_data. This gives ~25% speedup.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@26856 a1c6a512-1295-4272-9138-f99709370657
2010-06-15 10:41:43 +00:00