Previous day | Jump to hour: 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | Next day

Seconds: Show Hide | Joins: Show Hide | View raw
Font: Serif Sans-Serif Monospace | Size: Small Medium Large

Click in the nick column to highlight everything a person has said.
The Logo icon identifies that the person is a core developer (has commit access).

#rockbox log for 2009-07-09

00:00:55domonokypixelma: the problem is, that we as developers are too familiar with those words, so we are bad a creating good description for users..
00:01:21saratogawincent: so hopefully you'll be able to remove all fp code from performance sensitive parts of pd?
00:01:36domonokyi just cant image a better word for the place where your device is connected, which fits mac/linux/windows.
00:01:55 Quit jgarvey ("Leaving")
00:02:40saratogaflyback: my point is that if no one is working on a port to your device then it is not a good bet that there will be a port to your device
00:02:44saratogaunless you're planning to do it
00:03:09flybackI understand that
00:03:11pixelmadoes it need to be "mount point" there too? Although I guess for bootloader installing things on the player there should be some precision...
00:03:14flybackI have no problem with that :)
00:03:40wincentsaratogalab: It's done already. I wanted to say that the performance of one oscillator is already tested. Most likely the system is much more capable, only I have not tested it yet.
00:04:07saratogawincent: so what does the floating point code actually handle?
00:04:54wincentsaratogalab: Control signals, like the value of frequency for an oscillator.
00:05:14wincentsaratogalab: In the example it is a constant.
00:05:34domonokypixelma: if you think you can improve the texts, please do it :-)
00:05:51 Join Sajber^ [0] (
00:06:07saratogawincent: are you sure that doesn't impose a performance cost? likely that value would be feed into a call to cos(), which will be extremely painful on ARM
00:06:21saratogaor does the code implement its own fixed point trig functions?
00:06:30pixelmadomonoky: not sure I actually can but I'm trying to keep that in mind
00:06:33 Quit barrywardell (Remote closed the connection)
00:07:24domonokypixelma: i also appreciate non-code patches, just tell us the dialog/desciription and the new text :-)
00:08:59pixelmathe German translation of "mount point" though... it was even less descriptive to me but I don't know of many "clean" German computer terms...
00:09:01 Quit LambdaCalculus37 ("This computer has gone to sleep")
00:09:51 Part flyback ("Leaving")
00:10:23 Join mt [0] (n=mt@
00:10:44 Join webguest45 [0] (n=4d152cbc@gateway/web/cgi-irc/
00:11:16wincentsaratogalab: It converts the frequency value from floating-point to fixed-point one, using a floating-point addition and a shift. The oscillator itself uses a very big cosine table.
00:11:27 Quit Zagor ("Clint excited")
00:11:49gevaertswincent: so basically you only do floating point when something changes?
00:11:52 Quit webguest45 (Client Quit)
00:12:11wincentsaratogalab: Also, I implemented a floating-point sine and cosine as polynoms.
00:12:54wincentgevaerts: Yes. And it changes mostly when doing something in GUI, which is not implemented yet.
00:13:30*gevaerts always knew that GUIs slow things down!
00:13:57 Join notlistening [0] (
00:14:08wincentgevaerts: Of course! And AUIs do not! :-)
00:16:05bertrikyay, adc on meizu works (really easy though)
00:17:01linuxstbbertrik: Do you mean the audio adc, or the other?
00:17:14 Quit HBK ()
00:17:40bertriklinuxstb, the other, the one that reads battery voltages and such
00:18:33gevaertsbertrik: if you get stuck without a nand driver, maybe the ramdisk driver can help
00:18:39bertrikI wonder if I should use more interrupts and less polling ...
00:19:06 Join BHSPitMonkey [0] (n=stephen@unaffiliated/bhspitmonkey)
00:19:53 Join martian67_ [0] (
00:20:37bertrikI mean simple interrupts where we go to sleep while waiting for the hardware and let the interrupt wake us up
00:20:52 Quit martian67_ (SendQ exceeded)
00:21:28 Join martian67_ [0] (
00:26:54bertrikgevaerts, I'm quite sure now that the nand/ftl will be the point to get stuck
00:28:44 Quit martian67 (Connection timed out)
00:30:01gevaertsbertrik: if you manage to get the main rockbox binary running with usb, you can use the ramdisk driver to get a full rockbox on it to work on plugins and codecs. it needs some tricks in main.c (basically enable early USB for software USB), but it works
00:31:03bertrikah, interesting idea!
00:31:47gevaertsI've done it at some point on my ipod mini
00:31:48bertriklike give it 2 MB RAM for running rockbox and 14 MB for the RAM filesystem
00:32:10gevaertsyes. I'd probably go for 8/8 or 4/12, but that's the general idea
00:33:25 Join Thundercloud [0] (
00:33:52 Quit domonoky (Read error: 104 (Connection reset by peer))
00:33:53shotofaddsbertrik: have you seen ? seems they have "enough of the FTL that we can read from the filesystem"...
00:33:58gevaertsThe only problem is that it's not persistent, and it's bigger than the nor flash, so you have to fill it over usb
00:34:11bertrikI was also toying with the idea of replacing the RAR in the DFU image with a rockbox binary
00:34:44bertrikshotofadds, I knew iphones also used whimory, but didn't know they were already that far
00:35:00 Quit mcuelenaere ()
00:35:01shotofaddsnetiher did I, I just used the power of Google ;)
00:35:21 Quit martian67_ (Read error: 104 (Connection reset by peer))
00:35:25 Join Lazatar [0] (
00:35:40 Quit ender` (" Some people like my advice so much that they frame it upon the wall instead of using it. -- Gordon R. Dickson")
00:37:04 Quit shotofadds ("Leaving")
00:37:36bertrikwell, let's do that part last, maybe the iphone people figure out more ! :P
00:39:43 Nick Lazatar is now known as martian67 (
00:39:47 Join AndyI [0] (i=AndyI@
00:45:00 Quit tessarakt ("Client exiting")
00:50:30amiconn call for opinions (regarding create_numbered_filename())
00:51:04 Part Llorean
00:51:15 Quit AndyIL (Read error: 110 (Connection timed out))
00:52:53 Join Llorean [0] (n=DarkkOne@rockbox/user/Llorean)
00:54:39***Saving seen data "./dancer.seen"
00:54:56linuxstbamiconn: What does it change?
00:56:23linuxstbBTW, why is that function in firmware? hwcodec recording?
00:57:35amiconnIt changes the behaviour so that it catches pre-existing numbers regardless of length
00:57:42gevaertsamiconn: I think it makes sense
00:58:50gevaertslinuxstb: things like if it's considering to write "file01.whatever" and "file1.whatever" is already there, it will go on to 2
00:59:40amiconnIt was moved to firmware/ because screendump uses it, and was also moved to firmware/. See
01:05:41 Quit krazykit (Remote closed the connection)
01:05:51 Join krazykit [0] (
01:21:42 Join HBK [0] (
01:26:52 Join mc2739 [0] (
01:26:54 Quit JdGordon| ("Miranda IM! Smaller, Faster, Easier.")
01:29:50CIA-71New commit by amiconn (r21732): Numbered filename creation: Make the search for pre-existing files independent of the requested number length. This way it will also increment ...
01:31:33 Quit kachna|lappy (Read error: 104 (Connection reset by peer))
01:31:53 Join kachna|lappy [0] (n=kachna@
01:36:16 Join JdGordon| [0] (i=ad7efd83@gateway/web/freenode/x-a95b1f07f8ee3e84)
01:39:29 Quit n00b81 ("Leaving")
01:39:36 Quit Stephen_ ("Leaving")
01:40:50 Join n00b81 [0] (n=taylor@unaffiliated/n00b81)
01:41:41 Nick n00b81 is now known as n00b81|afk (n=taylor@unaffiliated/n00b81)
01:42:44 Quit Thundercloud (Remote closed the connection)
01:45:05amiconnHmm, new build system shows slightly different deltas from classic one. The deltas seem to be somewhat broken in the new system still. See e.g. ipod G3...
01:50:17rasherslightly different deltas happen in the old build system as well
01:50:27rasherDepending on which client built
01:50:31rashera missing delta is more worrying though
02:02:01 Quit HellDragon (Read error: 104 (Connection reset by peer))
02:02:13 Join HellDragon [0] (
02:04:40 Join fdinel [0] (
02:06:23 Quit AfterDeath (Remote closed the connection)
02:06:28 Join AfterDea1h [0] (n=icxcnika@freenode/weird-exception/network-troll/afterdeath)
02:10:42 Quit JdGordon| (Ping timeout: 180 seconds)
02:14:56 Join martian67_ [0] (
02:16:08 Quit martian67_ (SendQ exceeded)
02:17:16 Join martian67_ [0] (
02:19:27 Quit efyx_ (Remote closed the connection)
02:19:36 Quit martian67 (Connection timed out)
02:20:32 Nick martian67_ is now known as martian67 (
02:21:46 Quit krazykit ("Connection reset by beer")
02:22:03 Join krazykit [0] (
02:22:52 Quit robin0800 ("Leaving")
02:40:35 Join notByan [0] (
02:40:55notByanhas anyone heard of an issue where the person has to use the official firmware for usb transfer to work?
02:42:05notByanif I plug it into the USB while on rockbox, it boots up that black and white apple stuff and anything trying to access the drive becomes unresponsive until it is disconnected
02:42:11notByanthis is a 5.5G ipod
02:47:24notByanand this only happens about 50% of the time.
02:47:33notByanseems like more often than that lately
02:54:42***Saving seen data "./dancer.seen"
02:54:59 Quit rodpod (Read error: 104 (Connection reset by peer))
03:00:22 Join Best_ [0] (
03:09:10 Nick fxb is now known as fxb__ (
03:12:54 Quit krazykit ("Connection reset by beer")
03:13:32 Join krazykit [0] (
03:14:09JdGordonis there any known issues with the svn ams bootloader?
03:14:20JdGordondo i need to get the branched one?
03:17:57saratogaJdGordon: they should be the same aside from the version string
03:18:30JdGordonok, just making sure.. dont want to brick my new toy :p
03:18:59*JdGordon really wishes it had microSD though
03:19:23saratogaJdGordon: you can't really brick a sansa by using a bad bootloader, the dual boot code is built into mkamsboot, not the bootloader
03:19:33JdGordonok sweet
03:19:37saratogaso you should be able to recover even if you flash a blank bootloader
03:20:04JdGordondoes anyone need bits for a 5.5g video? it doesnt turn on but the lcd and batt are fine (presumably) and hdd is good
03:20:08dzand there's always manufacturing mode
03:20:20saratogadz: you're thinking of the e200
03:20:23dzah, true
03:20:45dzI was thinking the rest had that too
03:21:19saratogadz: none of the AMS players have it, its a feature on PP only
03:21:32dzah, I completely missed the AMS bit
03:22:55dzperhaps the fuel fumes are messing with my head
03:28:10 Join hd [0] (
03:28:12 Quit hd (Read error: 104 (Connection reset by peer))
03:33:30 Join LambdaCalculus37 [0] (n=rmenes@rockbox/staff/LambdaCalculus37)
03:35:30 Join CaptainKwel [0] (
03:57:44 Quit notlistening (Remote closed the connection)
04:02:59 Quit HBK (Read error: 104 (Connection reset by peer))
04:03:21 Join HBK [0] (
04:09:34 Join cool_walking_ [0] (i=cb3b81c3@gateway/web/freenode/x-f7b33c431190b18c)
04:16:00 Nick n00b81|afk is now known as n00b81 (n=taylor@unaffiliated/n00b81)
04:17:12 Quit n00b81 ("Leaving")
04:19:48 Quit mc2739 ("ChatZilla 0.9.85 [Firefox 3.0.11/2009060215]")
04:30:36 Quit HellDragon (Read error: 104 (Connection reset by peer))
04:32:21 Quit CaptainKwel (Remote closed the connection)
04:33:24 Join HellDragon [0] (
04:44:04 Quit HellDragon (Read error: 104 (Connection reset by peer))
04:44:10 Join HellDragon [0] (
04:54:45***Saving seen data "./dancer.seen"
04:59:56 Quit LambdaCalculus37 ("This computer has gone to sleep")
05:05:40 Quit Sajber^ (Read error: 104 (Connection reset by peer))
05:09:45 Part wincent ("Kopete 0.12.7 :")
05:13:47 Quit luke_dozen (Read error: 110 (Connection timed out))
05:14:14 Join luke_dozen [0] (
05:21:19Unhelpfulwhat do people think about trying to mostly eliminate -mlong-calls on ARM targets? as i understand it *most* calls could be made short, and short calls are faster, and smaller code, since they eliminate a load-from-memory for the function address...
05:21:54JdGordonwhats the down side?
05:22:21 Join _lifeless [0] (n=lifeless@
05:23:01 Quit HBK (Read error: 104 (Connection reset by peer))
05:24:19UnhelpfulJdGordon: the down side is that calls that are "too far" must be made long calls. on the beast at least, this means calls between iram and dram (call site is in one, target function in the other). such calls would need to be explicitly made long... jhmikes had worked up a long call macro for this purpose a while ago, while trying to make a specific function short-called, because there were a few places where it couldn't be.
05:24:38FlynDiceUnhelpful: I thought funman did that along with the mmu/dcache patch, is there something that leads you to beleive he did not?
05:25:33UnhelpfulFlynDice: did he? it looks like many arm targets still use it...
05:25:56Unhelpfulor are those specifically the MMU-less ones?
05:27:00FlynDiceHe rearranged the iram and dram virtual addresses to get rid of the long calls I think, I could be mistaken but I beleive it is so.
05:28:08FlynDicewell for AMS he did, I am rather single minded...
05:29:18Unhelpfulit looks like for the gigabeats long calls are gone. they are still there for all arm9 targets (i think none of these are supported?) and for any arm7tdmi target that doesn't call arm7tdmicc with a "short" argument in tools/configure
05:29:43Unhelpfulthe only target that uses arm7tdmicc short is ifp7xx
05:30:12 Join martian67_ [0] (
05:31:19Unhelpfuli'm assuming we *can't* do short calls everywhere via address fixing on the remaining arm7 targets, but it would still be possible if it's only an issue for iram<->dram calls to use a long call macro that is defined to do nothing special on other targets
05:31:20JdGordonrasher: ping?
05:36:33 Quit martian67_ (SendQ exceeded)
05:38:18 Quit martian67 (Read error: 110 (Connection timed out))
05:41:23 Join martian67_ [0] (
05:43:38 Quit luke_dozen (Remote closed the connection)
05:43:54 Join thon0925 [0] (
05:44:50 Join HBK [0] (
05:45:17 Join luke_dozen [0] (
05:51:07 Quit Horscht ("Verlassend")
05:52:38 Quit ej0rge (Remote closed the connection)
05:53:00 Quit martian67_ (Remote closed the connection)
05:53:19 Join martian67_ [0] (
05:53:24 Quit HBK ()
05:54:01 Join HBK [0] (
06:00:06 Quit fdinel ("Miranda IM! Smaller, Faster, Easier.")
06:00:40JdGordonanyone know what the story with the clip keymap is? it seems to be a bit wierd on first use?
06:01:12 Quit mt (Read error: 104 (Connection reset by peer))
06:01:18LloreanIt is a bit weird, yes. It's a bit hard to improve it well.
06:01:34 Join mt [0] (n=mt@
06:02:33JdGordonI find it odd that a button has been assinged for the rec screen which isnt enabled...
06:02:58LloreanThat is weird, yes.
06:03:00LloreanDidn't know that.
06:03:02LloreanWhich button?
06:03:10JdGordonlong home
06:03:26JdGordonbased off the e200 keymap apparently
06:04:33JdGordoneek, its a mess :p
06:04:47JdGordonI want a go to wps button, but home doesnt really work there
06:05:25LloreanI really think we should co-opt the volume buttons for lists.
06:05:33JdGordonI was thinking the same
06:05:40LloreanBut there have been some arguments against it.
06:05:47JdGordonwith an option so users can use them for volume if wanted
06:06:04JdGordonthey are a bit hard to reach in the right hand though
06:06:12LloreanYou could even have a combination to use them for volume. Long-home could maybe do that?
06:06:40JdGordonprobably not.. buttons are too close
06:06:50r4v5I'm still not sure why 2d scrolling (i.e. text input box) works the way it does on the e200, speaking of keymaps
06:07:39JdGordonthe keyboard doesnt work at all on wheel targets...
06:08:31 Part thon0925
06:09:42JdGordonLlorean: do you know if home can be used in combos with the directions?
06:09:55LloreanJdGordon: No clue.
06:10:25JdGordonI'm tihnking home+up for WPS, home+down for quickscreen
06:10:45LloreanI wouldn't object to that if it works.
06:12:00*JdGordon forgot how paintful modifying keymaps was
06:13:06 Join mt__ [0] (n=mt@
06:13:12 Quit mt (No route to host)
06:13:43 Join n17ikh| [0] (
06:19:36Unhelpfulhrm, actually, i think this can be made *fairly* non-invasive if we just add an __attribute__((long_call)) to ICODE_ATTR on targets that currently use -mlong-call. doing that and removing -mlong-call should remove quite a few long-calls, though possibly not quite all that could be removed.
06:26:03 Quit n17ikh (Success)
06:43:03 Quit _Auron_ ("Infinity repeatedly denies rumours of plotting with zero to bring down the Universe.")
06:43:43 Quit luke_dozen (Remote closed the connection)
06:47:53 Quit martian67_ (Read error: 60 (Operation timed out))
06:50:29 Join martian67_ [0] (
06:53:15 Quit n17ikh| ()
06:54:49***Saving seen data "./dancer.seen"
06:58:59 Join n17ikh [0] (
07:00:29 Join Grahack [0] (n=chri@
07:00:42 Quit mt__ (Read error: 113 (No route to host))
07:03:58 Join _Auron_ [0] (
07:10:36 Quit martian67_ (Connection reset by peer)
07:10:54 Join martian67_ [0] (
07:24:21Unhelpfulugh. the long_call attribute makes pointers incompatible :/
07:26:06Unhelpfulthat, and the need to make sure anything with IBSS_ATTR has LC_ATTR wherever it's declared makes this a bit more invasive than i'd hoped
07:26:12 Join drteazy [0] (i=18f2ef5f@gateway/web/freenode/x-6cab764945c2a46b)
07:27:59Unhelpfulwoo, indeed. need anything?
07:28:57drteazyI guess my Sansa e260 is jacked up. One day, I plugged it in to find the dreaded "USB Device Not Recognized" error. I thought it was the cable so I bought another and no go. Now, I have a question - I booted in to Recovery Mode and it said "PC Communication: Fail". Probably not good, eh?
07:29:34 Quit r0b- (Read error: 60 (Operation timed out))
07:30:08drteazyoh and another thing. I managed it to get it to be recognized in Windows the other day, but oddly the transmission speeds were awfully slow.
07:30:42Unhelpfulit starts rockbox normally?
07:31:11drteazyit works great. Just cant connect to my Dersktop add/delete files.
07:31:22drteazyerr, Desktop.
07:32:28Unhelpfulyou could try starting the sansa firmware to do usb transfers. *if* the problem is in rockbox USB, that should still work. otherwise, the problem is either with your player, or your OS.
07:32:54drteazyUpon connecting the device to my Desktop, usually one of two things happens: 1) absolutely nothing (no "USB Device" errors, no device listed in My Computer) and 2) the "USB Device not recognized" error, coupled with an Unknown Device in Device Manager.
07:33:06drteazyHow would I go about booting to the original firmware?
07:33:25 Join pixelma_ [50] (n=pixelma@rockbox/staff/pixelma)
07:33:25 Quit pixelma (Nick collision from services.)
07:33:39 Nick pixelma_ is now known as pixelma (n=pixelma@rockbox/staff/pixelma)
07:33:44 Quit amiconn (Nick collision from services.)
07:33:46 Join amiconn_ [50] (n=jens@rockbox/developer/amiconn)
07:34:08 Nick amiconn_ is now known as amiconn (n=jens@rockbox/developer/amiconn)
07:34:13Unhelpfulcheck the sansa manual for that - they're linked from
07:34:35drteazythank u
07:36:07Unhelpfulit should be in the "Quick Start" section :)
07:43:06tmzthow is the manual going to help with that? he doesn't have the rockbox bootloader installed?
07:43:19tmztoh, rockbox manual for Sansa
07:43:54 Join Thundercloud [0] (
07:50:10r4v5drteazy: should be left arrow/rewind in the bootloader
07:50:49drteazyI got it. Thanks fellers.
07:51:08drteazythis thing is totally jacked up. I think I need a new Sansa.
07:51:54 Join __lifeless [0] (n=lifeless@
07:52:40drteazyanyone recommend a solid MP3 player (aside from the apple ones)?'
07:53:02drteazyI could get another e260, but that would be b-orrring.
07:58:20cool_walking_drteazy: I quite like my e200 and Gigabeat S (though that's not a supported target yet, and the battery life is sucky compared to others). If you want to watch videos, the iPod Video can be a hassle for that 'cause Rockbox can only run them at about 15fps.
08:07:51 Quit _lifeless (Read error: 113 (No route to host))
08:09:33UnhelpfulUGH. can't force gcc-inserted memset/memmove/memcpy calls to be long calls.
08:15:40 Join flydutch [0] (
08:16:23amiconnUnhelpful: Gcc is weird wrt short/long calls on arm. Imo it is not possible to get rid of long calls on arm targets where memory can't be mapped close enough
08:17:31 Quit kachna|lappy (Read error: 113 (No route to host))
08:17:47amiconnI mean getting rid of more long calls than would be necessary
08:18:54 Join Dauron [0] (
08:19:09 Quit _Auron_ (Read error: 54 (Connection reset by peer))
08:19:15amiconnFor this to work properly, gcc would need to take both the section of the caller and callee into account so that one could specify those section pairs which need long calls, but it doesn't do that
08:19:17 Nick Dauron is now known as _Auron_ (
08:19:20Unhelpfulthe only way i can see at this point is to insert our own memset/memcpy/memmove calls... but then somebody could add code that introduces a new auto-call to one of them, and it will be broken for no reason they're likely to understand.
08:20:09Unhelpfulor to use a solution like the mem function wrappers that the plugins used to have
08:22:35*amiconn accepted that there is no solution to this using gcc quite a while ago
08:22:46amiconnMaybe gcc 8.0 will allow that...
08:25:43amiconnIt's not like all functions are long called atm. Static functions are always short-call. This is a gcc bug and the reason why STATICIRAM exists
08:27:08Unhelpfulno, i'm getting the impression we couldn't drop -mlong-call. we could go the ridiculously invasive route, and add short_call attributes everywhere, and use a macro to perform explicit long calls when calls cross in/out of iram. to get a benefit out of that we'd end up having to go through adding those attributes to every non-static function, though. :/
08:30:23 Quit drteazy ("Page closed")
08:30:44GodEaterUnhelpful: I'm not expert, but could the short calls be bundled into one location and wrapped with a #pragma no_long_calls instead ?
08:31:13GodEaterinstead of adding short_call attributes to them all individually ?
08:36:27amiconnThe fundamental flaw here is that gcc only looks at single functions, not at caller/callee pairs
08:37:12amiconnAn iram function could be short-called from another iram function, but must be long-called from a dram function.
08:37:25amiconnSame for the opposite direction
08:37:42Unhelpfulamiconn: yes, but if we can easily mark the bulk of functions as short-called, that leaves a fairly small number of cases to fix up. and as long as gcc-inserted mem* calls are affected by -mlong-call...
08:39:00 Quit safetydan ("Leaving.")
08:41:11Unhelpfuljhmikes had worked up a long-call macro a while ago, because he'd wanted to flag some particular function as short-called, but had one instance where it needed a long call. it's, um, more than a little ugly, but you get the same asm out of gcc with it as you would if the function were labeled as long-called
08:42:34 Nick J-23|away is now known as J-23 (
08:42:37Unhelpfulit's non-trivial get gcc to call a function by address when it thinks it should call it by offset. he and i both tried a number of approaches and never came up with a pure-C approach - in the end it took an inline asm with "ldr %0, =function" that assigned its address to a pointer.
08:44:26amiconnJust a quick idea - would it be possible to have a macro that turns an ordinary function call into a call-via-pointer?
08:44:53Unhelpfulthat is pretty much exactly what i have.... let me pastebin the ugly thing, just a sec
08:44:56amiconnCalling a function pointer is essentially a long call
08:45:30amiconnYou need a pointer of the correct function type - and in an automatic way
08:46:44 Quit BHSPitMonkey ("Ex-Chat")
08:46:53Unhelpfulyes, and it's pretty easy to do that with inline ASM, if you abuse statement expressions and typeof
08:47:28Unhelpfulbasically L_CALL(func) produces a pointer to func that you can call without gcc replacing it with a short call
08:47:40Unhelpfuland without gcc generating any weird extra code compared to a normal long call
08:50:07JdGordonrasher: how much of your itunes patch is specific values for the mini? I did the changes for ata-sd-pp.c in ata.c (doing this on the 5.5g) and dmesg shows a mini trying to connect but it doesnt get a ums connection at all.. and I dont know if rockbox freezes or crashes, but it needs to be reset after disconnect
08:50:10 Join ender` [0] (i=krneki@
08:50:46rasherJdGordon: You'd need to ask gevaerts - it's his thing, I just tested and put the patch on FS
08:50:56JdGordonoh, ok
08:51:03rasherHe's going to kill me for saying that though
08:53:14Unhelpfulif that #pragma can be used to force all explicit function calls to be short, it shouldn't be hard to add L_CALL() around the ones that we know cross in or out of iram. and of course L_CALL could be a no-op for platforms where it's not needed.
08:54:22 Join Rob2223 [0] (
08:54:50***Saving seen data "./dancer.seen"
08:55:33*JdGordon will annoy gevaerts about it tomorow :)
08:56:56Unhelpfula quick test shows that that should work. it may work better than we want it to, as apparently putting it in some always-included header will lead to it being impossible to force long call except by using an explicit function pointer. it even disables the long_call attribute, it would appear. :)
09:00:22amiconnWhy do you need the asm at all?
09:01:41*amiconn admits that he doesn't understand that thing completely
09:02:00Unhelpfuli tried just producing a pointer to the function in the statement expr. gcc converts that to a short call. casting to uintptr_t and back also still gets you a short call, even if the uintptr_t is a separate temp variable.
09:02:30Unhelpfulit seems to be much smarter than we'd like in this case... which is funny considering how often it can fail to figure out similar problems.
09:02:52amiconnHmm, that's a block...
09:03:12amiconnDid you try including the function's arguments in the macro?
09:03:40 Join bagder_droid [0] (n=52b61a05@gateway/web/cgi-irc/
09:03:45Unhelpfuland just calling the pointer that i create with __VA_ARGS__? i can try :)
09:04:51amiconnAnother thing to try would be using the volatile qualifier for the pointer variable. This should stop gcc from converting the call, unless there's a bug
09:05:29 Quit bagder_droid (Client Quit)
09:05:29Unhelpfulthat added extra code compared to a normal long call... although i must confess i'm not sure that i had the volatile in the right place.
09:06:26 Join dfkt_ [0] (
09:06:42amiconnSuch manual solution have a fundamental problem anyway: they become ugly very quickly
09:07:07 Part _Auron_
09:07:14amiconnWe have code where some functions are in iram on one arm target, but in dram on another, for performance and/or iram size reasons
09:07:44amiconnThese places need ifdefing the macro (or maybe we accept a few extraneous long calls)
09:08:10amiconn(the macro *call* of course)
09:09:26 Join kachna|lappy [0] (
09:11:41Unhelpfulnaturally gcc is going to make i liar out of me... i apparently have it working with a simple copy of the pointer, by atting the long_call attribute to the copy's declaration.
09:12:20 Quit dfkt (Read error: 60 (Operation timed out))
09:12:27 Quit Rob2222 (Read error: 110 (Connection timed out))
09:13:20 Quit yosafbridge ("Coyote finally caught me")
09:13:41 Join yosafbridge [0] (
09:18:12Unhelpfulthis appears to work properly:
09:18:13Unhelpfulremoving the attributes causes gcc to use a short call
09:18:48 Join bagderoid [0] (
09:21:56bagderoidtrying this Android irc client...
09:22:28*rasher suggests bagderoid is in the wrong channel
09:23:23Unhelpfulare there any C files that *don't* include config.h (or something else that includes it)?
09:23:25*GodEater likes bagderoid's nick
09:26:35amiconnUnhelpful: Does that also work for static functions?
09:28:07 Quit Thundercloud (Remote closed the connection)
09:28:43Unhelpfulamiconn: as a replacement for the STATICIRAM hack? i'm not sure. i'm just testing with a c file that declares a few externs, and a few functions that do nothing but call them.
09:31:24Unhelpfulthe simple pointer-copy version doesn't work with a static function
09:35:51 Join efyx_ [0] (
09:35:57Unhelpfulthe inline-asm version works with a static function as well... and generates identical code to a call to an extern long_call function
09:43:32 Quit bagderoid (Remote closed the connection)
09:43:33 Join robin0800 [0] (n=robin080@
09:45:05Unhelpfulok, i added a firmware/export/shortcalls.h with #pragma no_short_calls in it, and arm7tdmicc adds a -include shortcalls.h along with -mlong-calls... which of course leads to relocation errors, but i knew it would take hand-work to get the long calls forced where they're needed.
09:45:59Unhelpfuljust adding the #pragma to config.h got me warnings about conflicting definitions - obviously it's *not* always included.
09:53:02Unhelpfulif i know that *all* calls to a function should be long, is it cleaner to change the pragma around its definition, or to L_CALL all of the calls to it?
09:56:46 Join rodpod [0] (
10:10:28 Quit cool_walking_ (Ping timeout: 180 seconds)
10:12:47*bubsy eats GodEater
10:14:51*GodEater hopes bubsy gets indigestion
10:15:08bubsydo go on, think thoughts inside my body
10:15:10bubsyit won't help
10:15:13bubsyyou're dead soon :>
10:15:27*scorche thinks bubsy has the wrong channel
10:15:48*bubsy thinks scorche thinks too much
10:16:51scorchebubsy: what i meant by that is that this channel is reserved for discussion about Rockbox...we have another channel for people to discuss social/offtopic items
10:17:16bubsyYeah, I comprehended that, but somehow I didn't register it
10:40:21amiconnUnhelpful: The inline asm version looks like it's doing double assignment
10:49:39 Join Sajber^ [0] (
10:50:16 Quit kachna|lappy (Read error: 110 (Connection timed out))
10:51:46Unhelpfulamiconn: really? nothing like that happened with my test case, it looked exactly like the code generated by other long calls
10:54:20Unhelpfulthe asm generated in rockbox appears sane to me, as well, but gcc is making trouble... it's not putting its generated constants pool close enough to the loads from it. :/
10:54:54***Saving seen data "./dancer.seen"
10:56:29 Join einhirn [0] (n=Miranda@
10:57:07Unhelpful from apps/codecs/sid.c
11:01:36Unhelpfuli'm not sure what's up with the mov r5, r6 though... i can't find that it uses the saved value again.
11:11:17 Quit J-23 ("wszedłem")
11:13:14amiconnUnhelpful: In, the line declaring _ptr assigns to it, and the asm statement assigns to it again
11:13:37amiconnI think that gcc optimises the first assignment away, but then you shouldn't write it in the first place
11:13:55-->"ident nec01nec" received from checkup (n=strac02@
11:16:55 Join kachna [0] (
11:18:05Unhelpfuloh! i see what you mean. i have that fixed on my end already, but there's still the constant pool problem, which is pretty much a stopper for that version of L_CALL. and the simple assign-to-temporary version of L_CALL produces a short call if the no_long_calls pragma is in effect :/
11:18:42amiconnSolution: do not use #pragma.
11:19:41Unhelpfulwhich gets us back to explicitly marking any function for which we want short calls, with an attribute.
11:19:43amiconngcc is already buggy enough without it
11:19:46 Quit GodEater (Remote closed the connection)
11:20:04amiconnWhy? Just remove -mlong-calls
11:20:32Unhelpfulthat's no good. gcc then generates short calls to memcpy and friends.
11:21:19amiconnEven if they're declared with __attribute__((long_call)) ?
11:21:54Unhelpfulas far as i can tell its generated calls to them only care about the compiler flag.
11:22:21 Join GodEater [0] (
11:23:18 Join kachna|lappy [0] (
11:24:11 Join J-23 [0] (
11:24:45Unhelpfulthe temporary-pointer version works in *any* case if i make the pointer volatile, but it generates some rather ugly excess code
11:24:48GrahackWhen I ACTION_STD_NEXT in the file browser, I select the next file. Now if I ACTION_STD_NEXTREPEAT, it scrolls down slowly and then faster. Could someone tell me where is this 'faster' thing is implemented in the C code ?
11:25:57Unhelpfulit uses a pc-relative load to get the address, but then it moves the stack pointer (as a separated sub instruction), stores the address to the stack, reads it back from the stack, and then does the call.
11:26:22 Join DarkDefender [0] (
11:26:33Unhelpfuland then uses an add to increment the stack pointer again. ick.
11:34:52 Join bmbl [0] (n=Miranda@unaffiliated/bmbl)
11:35:48 Quit kachna (Read error: 110 (Connection timed out))
11:54:52Unhelpfulamiconn: double-checked with a short function that uses a char array with a short string initializer. gcc generates a memset call for this, and it only respects the command-line option for how to call it. adding a declaration for a long_call memset changes nothing, gcc still produces "bl memset" for the call
11:57:55 Join TheSeven [0] (
12:05:07Unhelpfulit's a shame that there's not a pragma that operates on the call the same way that long_calls/no_long_calls operate on the declaration... could just use that with _Pragma() and L_CALL wouldn't need any weird hacks.
12:11:46 Quit J-23 (
12:11:46 Quit yosafbridge (
12:11:46 Quit linuxstb (
12:11:46 Quit archstech (
12:11:46 Quit Zambezi (
12:11:46 Quit crashd (
12:11:46 Quit avacore (
12:11:46 Quit Bagder (
12:11:46 Quit kachna|lappy (
12:11:46 Quit timc (
12:11:46 Quit DarkDefender (
12:11:46 Quit notByan (
12:11:46 Quit jordan` (
12:11:47 Quit saratogalab (
12:11:47 Quit rasher (
12:11:47 Quit rvvs89 (
12:11:47 Quit r4v5 (
12:11:47 Quit kadoban (
12:11:47 Quit scorche (
12:11:47 Quit vedlith (
12:11:47 Quit dz (
12:11:47 Quit Hadaka (
12:11:47 Quit saratoga (
12:11:47 Quit bmbl (
12:11:47 Quit __lifeless (
12:11:47 Quit Llorean (
12:11:47 Quit trisiak (
12:11:47 Quit tmzt (
12:11:47 Quit lostlogic (
12:11:48 Quit fred_2 (
12:11:48 Quit r00s (
12:11:48 Quit jon-kha (
12:11:48 Quit rwong (
12:11:48 Quit Slasheri (
12:11:48 Quit HellDragon (
12:11:48 Quit rodpod (
12:11:48 Quit krazykit (
12:11:48 Quit gevaerts (
12:11:48 Quit DaCapn (
12:11:48 Quit parafin (
12:11:48 Quit tucsbgns (
12:11:48 Quit bubsy (
12:11:48 Quit killan (
12:11:48 Quit Beta2K (
12:11:48 Quit freqmod (
12:12:13 Quit sbhsu (
12:12:13 Quit Erant (
12:12:13 Quit Tuplanolla (
12:12:13 Quit obo (
12:12:13 Quit crwl (
12:12:13 Quit feisar-- (
12:12:13 Quit ChanServ (
12:12:13 Quit efyx_ (
12:12:13 Quit Torne (
12:12:13 Quit FOAD (
12:12:13 Quit brndyhite (
12:12:13 Quit thegeek (
12:12:13 Quit JdGordon (
12:12:13 Quit fxb__ (
12:12:13 Quit webmind (
12:12:13 Quit Neovanglist (
12:12:13 Quit einhirn (
12:12:13 Quit TheSeven (
12:12:13 Quit robin0800 (
12:12:13 Quit Rob2223 (
12:12:13 Quit ender` (
12:12:13 Quit amiconn (
12:12:13 Quit pixelma (
12:12:13 Quit Grahack (
12:12:13 Quit n17ikh (
12:12:13 Quit Best_ (
12:12:13 Quit AndyI (
12:12:13 Quit patmulchrone (
12:12:13 Quit evilnick_home (
12:12:13 Quit dmb (
12:12:13 Quit at0m (
12:12:13 Quit linuxguy3 (
12:12:13 Quit kkurbjun (
12:12:13 Quit bertrik (
12:12:13 Quit cg_ (
12:12:13 Quit shadearg (
12:12:13 Quit AlexP (
12:12:13 Quit agaffney (
12:12:13 Quit tchan (
12:12:13 Quit blithe (
12:12:13 Quit Ridayah (
12:12:13 Quit redfox (
12:12:13 Quit FlynDice (Connection reset by peer)
12:13:02 Join FlynDice [0] (
12:13:29NJoinTheSeven [0] (
12:13:29NJoineinhirn [0] (n=Miranda@
12:13:29NJoinrobin0800 [0] (n=robin080@
12:13:29NJoinRob2223 [0] (
12:13:29NJoinender` [0] (i=krneki@
12:13:29NJoinamiconn [50] (n=jens@rockbox/developer/amiconn)
12:13:29NJoinpixelma [50] (n=pixelma@rockbox/staff/pixelma)
12:13:29NJoinGrahack [0] (n=chri@
12:13:29NJoinn17ikh [0] (
12:13:29NJoinBest_ [0] (
12:13:29NJoinAndyI [0] (i=AndyI@
12:13:29NJoinpatmulchrone [0] (
12:13:29NJoinevilnick_home [0] (
12:13:29NJoindmb [0] (n=Dmb@unaffiliated/dmb)
12:13:29NJoinat0m [0] (
12:13:29NJoinlinuxguy3 [0] (
12:13:29NJoinkkurbjun [0] (n=kkurbjun@rockbox/developer/kkurbjun)
12:13:29NJoinbertrik [0] (
12:13:29NJoincg_ [0] (n=cromos@
12:13:29NJoinshadearg [0] (
12:13:29NJoinAlexP [0] (n=alex@rockbox/staff/AlexP)
12:13:29NJoinagaffney [0] (n=agaffney@gentoo/developer/agaffney)
12:13:29NJointchan [0] (n=tchan@lunar-linux/developer/tchan)
12:13:29NJoinblithe [0] (
12:13:29NJoinRidayah [0] (
12:13:29NJoinredfox [0] (
12:13:36 Quit tarbo (SendQ exceeded)
12:13:51 Quit AfterDea1h (SendQ exceeded)
12:14:13NJoinChanServ [0] (ChanServ@services.)
12:14:13NJoinefyx_ [0] (
12:14:13NJoinTorne [0] (
12:14:13NJoinFOAD [0] (
12:14:13NJoinbrndyhite [0] (n=brndyhit@
12:14:13NJointhegeek [0] (
12:14:13NJoinJdGordon [0] (n=jonno@rockbox/developer/JdGordon)
12:14:13NJoinfxb__ [0] (
12:14:13NJoinwebmind [0] (
12:14:13NJoinNeovanglist [0] (i=Neovangl@
12:14:13Mode"#rockbox +o ChanServ " by
12:14:14 Part Grahack
12:14:55NJoinbmbl [0] (n=Miranda@unaffiliated/bmbl)
12:14:55NJoinDarkDefender [0] (
12:14:55NJoinJ-23 [0] (
12:14:55NJoinkachna|lappy [0] (
12:14:55NJoinrodpod [0] (
12:14:55NJoinyosafbridge [0] (
12:14:55NJoin__lifeless [0] (n=lifeless@
12:14:55 Join HellDragon [0] (i=jd@Wikipedia/HellDragon)
12:14:55NJoinkrazykit [0] (
12:14:55NJoinnotByan [0] (
12:14:55NJoinLlorean [0] (n=DarkkOne@rockbox/user/Llorean)
12:14:55NJoinjordan` [0] (i=gromit@
12:14:55NJoinsaratogalab [0] (n=9803c264@gateway/web/cgi-irc/
12:14:55NJoinlinuxstb [0] (n=linuxstb@rockbox/developer/linuxstb)
12:14:55 Join rasher [50] (n=rasher@rockbox/developer/rasher)
12:14:55NJointimc [0] (
12:14:55NJoingevaerts [0] (n=fg@rockbox/developer/gevaerts)
12:14:55NJoinsaratoga [0] (i=9803c6dd@rockbox/developer/saratoga)
12:14:55 Join rvvs89 [0] (n=ivo@pdpc/supporter/base/rvvs89)
12:14:55NJointucsbgns [0] (n=tucsbgns@
12:14:55NJoinarchstech [0] (n=archstec@
12:14:55NJoinr4v5 [0] (
12:14:55 Join bubsy [0] (i=Bubsy@unaffiliated/bubsy)
12:14:55NJoinkadoban [0] (
12:14:55NJoinkillan [0] (
12:14:55NJoinjon-kha [0] (
12:14:55NJoinBeta2K [0] (
12:14:55NJoinscorche [50] (n=scorche@rockbox/administrator/scorche)
12:14:55NJoinvedlith [0] (
12:14:55NJoinBagder [241] (n=daniel@rockbox/developer/bagder)
12:14:55NJoinZambezi [0] (
12:14:55NJoinavacore [0] (
12:14:55NJoincrashd [0] (
12:14:55NJoindz [0] (
12:14:55NJoinHadaka [0] (
12:14:55NJoinparafin [0] (
12:14:55NJoinfreqmod [0] (
12:14:55NJoinfred_2 [0] (
12:14:55NJoinsbhsu [0] (
12:14:55NJoinErant [0] (
12:14:55NJointrisiak [0] (
12:14:55NJointmzt [0] (
12:14:55NJoinlostlogic [50] (n=lostlogi@rockbox/developer/lostlogic)
12:14:56NJoinr00s [0] (
12:14:56NJoinTuplanolla [0] (n=jani@unaffiliated/tuplanolla)
12:14:56NJoinrwong [0] (
12:14:56NJoinSlasheri [0] (i=miipekk@rockbox/developer/Slasheri)
12:14:56NJoinDaCapn [0] (
12:14:56 Join obo [0] (n=obo@rockbox/developer/obo)
12:14:56NJoinfeisar-- [0] (
12:14:56NJoincrwl [0] (
12:14:56 Quit alexbobp (SendQ exceeded)
12:15:10 Join tarbo [0] (n=me@unaffiliated/tarbo)
12:15:32 Join alexbobp [0] (
12:19:06 Join LambdaCalculus37 [0] (n=rmenes@rockbox/staff/LambdaCalculus37)
12:22:31 Quit J-23 ("znc")
12:22:48 Join J-23_ [0] (
12:24:07 Join linuxstb_ [0] (n=linuxstb@rockbox/developer/linuxstb)
12:25:29 Quit LambdaCalculus37 ("Fwump")
12:28:54 Quit ChanServ (
12:28:54 Quit tarbo (
12:28:54 Quit thegeek (
12:28:54 Quit fxb__ (
12:28:54 Quit JdGordon (
12:28:54 Quit Torne (
12:28:54 Quit brndyhite (
12:28:54 Quit efyx_ (
12:28:54 Quit webmind (
12:28:54 Quit Neovanglist (
12:28:54 Quit FOAD (
12:29:45NJoinChanServ [0] (ChanServ@services.)
12:29:45NJointarbo [0] (n=me@unaffiliated/tarbo)
12:29:45NJoinefyx_ [0] (
12:29:45NJoinTorne [0] (
12:29:45NJoinFOAD [0] (
12:29:45NJoinbrndyhite [0] (n=brndyhit@
12:29:45NJointhegeek [0] (
12:29:45NJoinJdGordon [0] (n=jonno@rockbox/developer/JdGordon)
12:29:45NJoinfxb__ [0] (
12:29:45NJoinwebmind [0] (
12:29:45NJoinNeovanglist [0] (i=Neovangl@
12:29:45Mode"#rockbox +o ChanServ " by
12:29:56 Quit tarbo (SendQ exceeded)
12:29:59 Nick J-23_ is now known as J-23 (
12:38:53 Join bimbel [0] (n=Miranda@unaffiliated/bmbl)
12:39:26 Join tarbo [0] (n=me@unaffiliated/tarbo)
12:42:32 Quit Sajber^ (Read error: 104 (Connection reset by peer))
12:50:48 Quit bmbl (Read error: 110 (Connection timed out))
12:52:56Torneopinions on having an actual feature to have bookmarks resume X seconds before the actual saved position (for the benefit of audiobooks) vs telling people to just hit rewind themselves? :)
12:54:48 Join n1s [0] (n=n1s@rockbox/developer/n1s)
12:54:58***Saving seen data "./dancer.seen"
12:55:35 Join barrywardell [0] (n=barrywar@
12:57:32robin0800Torne, as long as it can be set on or off
12:57:42Torneyah, i was expecting it would be a number of seconds
12:58:18Tornethe only cost would be the binsize, which would be "a setting" and then probably one line of code somewhere.
12:58:45Torne(assuming that it's okay to not bother to wrap to previous track) :)
13:00:22robin0800Torne, a setting in music to go back to the beginning of the track?
13:01:17Tornea setting in bookmarks for how many seconds befor ethe bookmark to resume, i meant
13:01:37*Torne shrugs. I dunno if it's worth it or not tbh :)
13:03:08 Quit AlexP (Read error: 104 (Connection reset by peer))
13:03:17robin0800Torne, The user would not know that for music so that would only be useful for audio books?
13:03:18 Join AlexP [0] (n=alex@rockbox/staff/AlexP)
13:03:41Tornewouldn' tknow what?
13:03:52Torneand yes, it's intended to be useful for audio books
13:04:39robin0800Torne, How long from start of track to bookmark position
13:05:06Tornei don't see what the start of the track has to do with anything
13:05:17Torneand it would just be *one setting* applied to all bookmarks
13:05:25Tornenot for each bookmark, otherwise you'd just set the bookmarks earlier :)
13:06:13robin0800Torne, that's where I would like the bookmark to resume from
13:06:16 Quit daurn (Read error: 113 (No route to host))
13:06:34Torneoh, you mean you'd want to set it to "beginning of track"
13:07:02Tornethat's trivial also, but might make it two lines :)
13:09:35robin0800Torne, at the moment every time you turn the dap on you have to hold rewind to do this or if possible only turn off at the end of a track
13:10:15Tornethis isn't anything to do with resuming playback
13:10:19Tornethis is specifically for bookmarks
13:11:29robin0800Torne, This is bookmark on stop and resume last bookmark
13:12:06Tornewell, whatever. i was just asking if anyone cared at all. you do :)
13:13:41*Torne arghs
13:13:44GodEaterrobin0800: you do know rockbox can't tell the difference between an audiobook and music don't you ?
13:13:51Tornethere's no difference between.. oh there we go
13:13:57Torneif it was implemented it would apply to everything
13:16:08 Join Sajber^ [0] (
13:18:49 Join _lifeless [0] (n=lifeless@
13:19:34 Quit bimbel (Success)
13:21:30gevaertsTorne: one problem would be that (as far as I understand) with many codecs you can't really just tell them to go back three seconds
13:21:53gevaertswell, you can tell them, but you can't really predict where exactly they will end up
13:21:58Tornegevaerts: i don't think it would work any worse than bookmarks already do
13:22:06 Quit __lifeless (Read error: 110 (Connection timed out))
13:22:10Tornewha ti was imagining is just literally subtracting the time from the bookmark position before doing anything
13:22:18gevaertsbookmarks also keep a byte offset I think (or was it number of frames?)
13:22:40gevaertsI'm not sure, but I seem to remember they do, yes
13:22:55*Torne looks
13:23:16Tornedamn, so they do
13:23:23Tornewell, they keep "a big load of numbers"
13:23:43GodEaterpresumably because of that very problem with codecs
13:23:45gevaertsI really would like the feature, I just have my doubts on how feasible it is
13:24:11Torneif you tell a codec to go back three seconds is it likely to end up going back *less*?
13:24:19Torneor hugely, uselessly more? :)
13:24:37Tornecuz i wouldn't really care if it went back six seconds instead
13:25:16GodEaterTorne: as I understand it the problem can be hugely exacerbated in long audio book mp3s, where you can end up going back minutes
13:25:30GodEaterLlorean has more experience of it though I think
13:27:01Torneit probably violates my effort/caring ratio threshold then
13:27:17 Nick dfkt_ is now known as dfkt (
13:27:30LloreanTorne: I've tried to rewind two seconds only to end up three minutes *later* in a file
13:27:47 Nick dfkt is now known as Guest62011 (
13:28:00 Part TheSeven
13:28:47TorneLlorean: ouch
13:29:10LloreanIt's quite frustrating, but apparently difficult to solve
13:29:23LloreanSadly the time displayed in WPS is also somewhat unreliable.
13:29:57 Nick Guest62011 is now known as dfkt (
13:30:19LloreanIf I seek to 2:10:22, it'll actually show a different time (sometimes several minutes different) after the seek (which is the part that confuses me most - if we end up at the wrong time in the file we shouldn't *know* it's wrong or we could correct it)
13:31:42*gevaerts thinks that Torne shouldn't give up on this. He should just start by fixing the codecs to seek properly :)
13:32:42Tornegevaerts: you're not gonna get me like that again
13:33:02Tornei'm reading the entire bloody code for the beast flash. what more do you want! :)
13:33:36gevaertslots :)
13:36:55 Join mcuelenaere [0] (
13:37:04linuxstb_gevaerts: Seeking's easy if you drop support for VBR mp3...
13:37:33gevaertslet's do that then
13:37:41*linuxstb_ doesn't object
13:37:57*Llorean gets the pitchforks and torches.
13:45:16 Join Trista340 [0] (
13:45:27mcuelenaereUnhelpful: can't you just use the MMU to map the IRAM close to the SDRAM address? (on targets that have MMU's of course)
13:46:00Tornemcuelenaere: i would guess that we were already doing this on targets that have MMUs. Lots of them don't :)
13:46:02 Join Sajber^1 [0] (
13:46:21mcuelenaereI don't think any of them do that, except for the Sansa AMs ones
13:50:22Unhelpfulthe gigabeats apparently no longer use -mlong-call, either. it looks, though, like nearly all other supported arm targets do. there's a "short" argument to arm7tdmicc to drop tho -mlong-calls option, but only ifp7xx appears to use it.
13:50:47 Nick fxb__ is now known as fxb (
13:52:07Torneit seems rather stupid that gcc can't decide whether it needs long calls based on section
13:54:30 Join KoRnAgE [0] (
13:55:02Tornehang on. can't you just get the linker to insert stubs using ip?
13:55:09UnhelpfulTorne: even if it can, it appears to use internal delcarations for memcpy and friends. if you don't pass it -mlong-calls, it always generates short calls for these functions when inserting them automatically.
13:55:37 Quit _lifeless (Remote closed the connection)
13:55:41TorneUnhelpful: it can't. it treats all functions with an explicit section as long calls, according to the docs
13:55:49Tornewhich means it will long-call between them too even in the same section
13:56:04Torneand yah, it's not going to listen to what you claim memcpy does. :)
13:56:13Tornesadly it assumes you are a standard C implementation for all that kind of thing
13:57:05Unhelpfulright, and the unnneed long-calls within the same region of memory are what i want to try to reduce. it may well be that the best we can hope to do is look for select often-called functions and give them a short_call attribute.
13:57:27KoRnAgE;~; *scratches head*
13:57:45 Quit Tristan (Read error: 110 (Connection timed out))
13:58:03UnhelpfulKoRnAgE: this is a development and support channel for rockbox. expect programmer talk. :)
13:58:18KoRnAgEYup ^^ I know x3
13:59:13Tornethe docs for ld say the linker automatically inserts stubs for function calls which turn out to be too far away
13:59:23Tornewhich is as i thought :)
13:59:32KoRnAgERockbox can view images without plugins. right? o3o I'm sorry for such a noob question but I've been pissed at how putting my photos on the ipod firmware takes up more space than my HDD :s
13:59:33UnhelpfulTorne: really, the most ideal would be to re-do the calls at link time based on their actual relative addresses. i don't think that gcc is capable of modifying anything but addresses/offsets at link...
13:59:51TorneOoh, aha
13:59:53Tornethere we go
13:59:54UnhelpfulTorne: if it's doing that, i wonder why i get so many relocation errors at link?
14:00:00Torneit only works for EABI
14:00:08TorneWe need to fix rockbox to use an EABI toolchain then :)
14:00:30Unhelpfultry changing configure to use "arm7tdmicc short" for, say, e200. ;)
14:00:32Tornethen you can have no long calls and it will generate them when needed at a small cost in binsize
14:01:07Torneit doesn't rewrite the instructions, sadly, becaus ethat's too hard :)
14:01:53Torne"Farcalls stubs insertion is fully supported for the ARM-EABI target only, because it relies on object files properties not present otherwise."
14:02:15Unhelpfulwell, a short call is fewer instructions, since a long one much load an address
14:02:31 Quit Sajber^ (Success)
14:02:38Torneit inserts stub functions which the short calls are redirected to call instead
14:02:49Tornethe stub loads the address of the far function into ip and then branches to ip
14:02:56Tornethi sis what ip is for in the AAPCS
14:03:41*Torne will test this out usin ghis eabi toolchain
14:03:49Tornei have no idea what issues we might face trying to build rockbox with eabi though
14:04:30Torne(or how *much* binsize increase we might be talking about)
14:12:51 Join MarcGuay [0] (
14:13:07 Join MrDuck [0] (
14:25:27 Quit DarkDefender (Remote closed the connection)
14:25:58Tornewell i can't get it to work
14:26:03 Quit KoRnAgE ("ChatZilla 0.9.85 [Firefox 3.5/20090624025744]")
14:26:04Tornebut variou sthings imply it should :)
14:27:52 Join MarcGuay_ [0] (
14:28:30 Quit kachna|lappy (Read error: 110 (Connection timed out))
14:29:11 Join Syrius [0] (n=Syrius@unaffiliated/syrius)
14:29:15Syriushello all
14:30:20SyriusI have restored my ipod via linux awhile back and have rockbox on it and I was wondering how do I get it to detect on windows vista that it is a storage device ?
14:30:36Syriusbecause when i use musikcube I am unable to see it
14:31:10Syriusit says that any portable media player is visible if windows sees it as a storage device
14:31:30Syriusthat it would be should under the devices menu in musikcube
14:32:33SyriusI can access it of course via windows just like any device
14:32:46SyriusI am just wondering why it is not showing up in musikcube
14:33:12SyriusI can play music from my ipod if I add the directory
14:33:19Syriusin musikcube though
14:33:48Syriusmaybe I need it in disk mode
14:34:02 Join LambdaCalculus37 [0] (i=44a0430d@gateway/web/freenode/session)
14:34:35MarcGuay_Syrius: Perhaps musikcube is expecting an MTP connection?
14:34:45MarcGuay_When Rockbox provides a MSC?
14:36:02TorneUnhelpful: OK, autogeneration of stubs on ARM requires binutils 2.19 and *possibly* to be using eabi rather than oldabi, though i'm not sure about that
14:36:25TorneUnhelpful: it doesn't work for me because my arm-eabi toolchain i have handy only has binutils 2.18.1 :)
14:36:33Tornerockbox's is even older
14:36:48Torneso i guess on that front it's back to revisiting how to get rb to build with current gcc/binutils? :)
14:36:57Torne(which would probably also help compiling as thumb and various other things)
14:38:44Syriusmaybe MarcGuay
14:39:31Syriusthat would be cool if programs would offer a plugin to detect rockbox firmware and to treat the device as a storage device and to scan it for playable audio files
14:39:48 Join KBH [0] (
14:39:53 Join daurn [0] (n=daurnima@unaffiliated/daurnimator)
14:39:54SyriusI think they should seriously do that now since rockbox is user friendly now
14:39:57Tornemusikcube doesn't do MTP, it works fine with MSC
14:40:00Torneaccording to their website
14:40:05Torneso something else is wrong.
14:40:17Syriuswhat do you think it is Torne
14:40:28Tornesite says it treats any removable drive with music on equally
14:40:32Torneso doesn't matter if it's rockbox or not
14:40:39SyriusI see
14:40:39LloreanWell, if it's an iPod, it may be trying to treat it as an iPod rather than straight MSC.
14:40:48TorneAh, there is that
14:41:11Syriushow could I get it to think it is not an ipod ?
14:41:28Syriusin vista explorer window it shows up as removable disk
14:41:33Tornewebsite also implies that it doesn't have ipod support
14:41:35Syriusnot as ipod
14:41:37Tornebut that's less clear
14:41:59Syriusmaybe I should email them
14:42:00LloreanSyrius: iPods always show up as a removable disk, or should.
14:42:06Torneif it shows up in windows as a disk then it's pretty much guaranteed to be the program's fault, not ours
14:42:25Torneeither the program is treating it as an actual ipod and looking for iTunesDB, or it's just broken in some other way
14:42:30Syriuswell I wouldn't know I haven't used windows in years Llorean
14:42:49Syriuswell I am not saying it is Torne
14:42:59Torneyah, i'm just saying
14:43:09Tornethere's not a lot we can suggest other than trying to disable any ipod support it might have
14:43:17SyriusI just thought you guys would be knowledgeable enough to know how to fix this problem
14:43:34Torneit's unlikely that anyone here has used that program, so probably not :)
14:43:38LloreanUnfortunately, we can't fix problems with other software.
14:43:51SyriusI love that program for windows
14:44:00LloreanOur software tries to do things "right" and hopes other software doesn't make bad assumptions, some software does.
14:44:10Syriusit is the best software libre program for music player I have seen for windows
14:44:32Tornewe're not criticising your choice of audio player :)
14:44:45SyriusI highly recommended it
14:44:56SyriusI don't like itunes
14:46:51Syriusdo you think I should change my ipod to manually manage music in itunes Torne ?
14:47:12SyriusI hope that works in wine I really don't want to install that on my windows box
14:47:21Tornethat doesn't change anything on the ipod
14:47:25Tornethat's just a setting for how itunes treats it
14:47:53LloreanThe iTunes setting shouldn't change anything.
14:48:00LloreanYou need to find out if your software gives special treatment to iPods, and if it does, ask them to fix it to be more strict on what it decides is an iPod.
14:48:41Syriusokay Llorean
14:48:51Syriusthanks for your help and suggestions
14:50:02SyriusI think it is pretty cool that I can view images and play videos on a grayscale ipod but then again their was the grayscale gameboy
14:50:17SyriusI still have one of those a grayscale gameboy
14:50:54Syriusit still works too
14:51:23 Join Grahack [0] (
14:51:44Torneis there anything specific stopping us from using gcc 4.x other than "some things may not build properly for the usual reasons" :)
14:52:58rasher4.x is used on a majority of archs. Om sh 4.x produces larger binaries iirc
14:53:57SyriusLlorean what media player do you use for you media device in linux also what media player do you use ?
14:54:03SyriusI mean media device
14:54:04 Join _lifeless [0] (n=lifeless@
14:54:44 Join Lazatar [0] (
14:54:55Tornerasher: ok, i'm blind somewhat, though i actually mean 4.3 or whatever, but still
14:55:00***Saving seen data "./dancer.seen"
14:55:09Tornehow about a newer binutils, is the actually relevant one
14:55:50Tornebinutils 2.19 on ARM for automatic far call stub insertion :)
14:56:08LloreanSyrius: Many people here have found they don't need a media manager.
14:56:30Syriusso what do you use then Llorean ?
14:56:41Syriusdo you just play them from the disk
14:56:53Tornerasher: i guess i should just try it :)
14:57:01Syriuswell I would like to play the music on my computer from the media device
14:57:23SyriusI already move the music to its own folder on my ipod
14:57:48 Quit HBK (Connection timed out)
14:57:59Syriusbut I don't want to waste up memory of audio files on my computer
14:58:20LloreanSyrius: This channel is about Rockbox. If you're asking how to play music on your computer, that's really a question for something else.
14:58:28LloreanNone of Rockbox's features require management software.
14:59:46Syriusyeah but rockbox allows the ipod the ability to put music in a folder on your ipod which makes accessing the music different thus that is why I am asking here Llorean
15:00:11Torneit makes it the same as every other mp3 player :)
15:00:15Syriusbecause you don't need the apple itunes database file any more
15:00:51LloreanSyrius: But PC-side stuff like that is still off topic here. it's the same as playing music from any hard disk, internal or external.
15:01:00GodEaterSyrius: relying on your ipod to keep your entire music collection is bad idea. You *should* keep all your music on your PC as well. Otherwise you risking losing it all one day when you drop the ipod and spack the hard drive in it.
15:01:25Syriusum GodEater I back it up on dvds
15:01:34GodEaterexcellent idea :)
15:02:24Syriusbut most media player software for linux detects that it is an ipod and automatically treats it as such so then I can't play my music on it Llorean
15:02:50LloreanSyrius: And in every single one of those cases, you should be reporting the problem to the software provider.
15:02:56SyriusI am asking for a media player for linux that treats it and automatically detects the device as removable storage
15:03:21 Join teru [0] (
15:03:31Syriusthen scans it for audio files
15:03:39Syriusthen makes an index file
15:03:39 Quit martian67_ (Success)
15:04:53 Quit Lazatar (Remote closed the connection)
15:05:12 Join Lazatar [0] (
15:05:57GodEaterSyrius: Amarok does that
15:06:45Tornethe ones which detect it as an ipod cna generally be told not to, either by disabling/removing the ipod plugin or by putting a special file on the device that says what kind of player it is and wat formats it supports
15:07:21SyriusI don't use kde GodEater
15:07:38n1sTorne: the reason that we've stuck with the gcc versions that we use is basically "they work" and the reward for an upgrade has been small to non existant, as in some cases things break, get slower/larger etc...
15:07:38Syriusthanks Torne
15:08:10Tornen1s: right. i guess sometime i'll try and see if it seems to work with binutils 2.19
15:08:14n1sbtw coldfire is the only arch using 3.4 all others are 4.x
15:08:22GodEaterSyrius: what's that got to do with it ? Neither do I.
15:08:28Torneand if so then it may be possible to make it generate longcall stubs on ARM at link time
15:09:11Syriusbecause it requires kde libraries GodEater
15:09:21GodEaterthat doesn't mean you need to run kde
15:09:29Syriusdoesn't go well with gtk
15:09:47n1sTorne: i tried to build the coldfire gcc with binutils 2.19 but bumped against some incompatibilities, not that that matters for arm...
15:09:50SyriusI don't want to install kde libraries
15:10:06Tornen1s: it might also need to be built for arm-elf-eabi instead of arm-elf :)
15:10:09Tornen1s: not clear on that one
15:10:11GodEaterit works FINE with GTK
15:10:33SyriusI mean it does look good
15:10:36LloreanGodEater: The two of you seem to be wandering further off topic
15:10:37Syriusit doesn't match
15:10:58SyriusI think it has to do with rockbox
15:11:05SyriusI have already explained above
15:11:10gevaertsSyrius: it has *nothing at all* to do with rockbox
15:11:17*n1s still want's to try 4.4 with coldfire but it will take a whole day
15:11:23Syriusgevaerts you should scroll up
15:11:32n1s ... to build on this netbook
15:11:39LloreanSyrius: He's read your explanation. You're wrong in terms of what this channel considers "on topic"
15:11:58GodEaterSyrius: you're talking rubbish. I use Amarok just fine with all my Rockboxed players, including my ipod.
15:12:19SyriusI don't want to use kde GodEater
15:12:26Syriuskde apps
15:12:53GodEaterwell I think this conversation has gone as far as it needs to then.
15:13:19Syriusokay Llorean
15:18:50*Syrius sorry guys I was being stupid I am tired also I noticed that I didn't have the show devices checked :(
15:18:58SyriusI solved my problem
15:21:20Syriusthanks Torne I also solved my rythmbox problem
15:22:03SyriusI disabled the ipod plugin and enabled the MTP plugin :D
15:23:56*Syrius is a happy camper now
15:26:59rasherTorne: I think the newer versions either produce larger binaries or slower code, pretty much across the line. Go figure
15:27:35Tornerasher: of binutils?
15:27:54Torneit shouldn't be needed to actually change gcc version now that i realised arm is already on 4.0 :)
15:28:27rasherTorne: Yeah, and 4.3 or 4.4 produce slower binaries iirc.
15:28:56 Quit Grahack ("Leaving.")
15:29:11Tornehaving ld 1.19 do the longcall stub trick should probably be a net win for binsize/speed though
15:29:20n1srasher: in some cases at least i think we have not seen any comprehensive benches
15:29:24Tornesince you can go back to -mno-long-calls
15:29:33Torneand it will just put in the stubs for the cases where it's needed
15:29:42Tornewhich is likely to be smaller and faster than having -mlong-calls for everything
15:31:32teruI'd like to commit FS #9383. any objection?
15:34:27gevaertsteru: if it fixes the issue, why not?
15:34:56 Join _zic [0] (
15:35:06 Join n00b81 [0] (n=taylor@unaffiliated/n00b81)
15:36:02amiconnUnhelpful: The beast has no code in iram, hence the long-call problem doesn't exist
15:36:20amiconnifp7xx is able to map iram close enough to sdram, and does that
15:36:26CIA-71New commit by teru (r21733): fix FS #9383 (chessclock freezes on deleting a player), patch by Yoshihisa Uchida.
15:36:33 Join Flasher [0] (n=4e343568@gateway/web/cgi-irc/
15:38:06TorneGodEater: reproduced the ipod DMA problems using just the one patch :)
15:38:14Flashergodeater could you help me use the flashwriter plugin? i can't compile it, i get all sorts of "missing *.h file" errors. where do i have to place th.c file provided in that task?
15:38:21GodEaterTorne: yay =/
15:38:31TorneGodEater: it seems very likely to be cacheline interference
15:38:39*GodEater wonders why he got picked out for this onerous task ?
15:38:55 Quit daurn (Read error: 113 (No route to host))
15:38:56Tornei'll have a look in the code. :)
15:39:33GodEaterFlasher: if you can't compile that on your own, you're not the right person to be playing with such dangerous code in the first place.
15:40:35Flasherdo i have to compile it patching svn?
15:41:53Flasheri though this was a promgramme on its own
15:42:31GodEaterFlasher: seriously, if you don't know what you're doing, leave it alone.
15:43:34Flasherwtf i got three gigabeats it doesn't matter to me if one gets broken, so why not just help me out? i won't blame anyone if anything doesn't work anymore, it's my responsibilty
15:44:35GodEaterperhaps because it's an involved process, and I had REAL LIFE to deal with ?
15:46:42Flasheri don't understand? what do you mean by involved process? i just read you had success using it, that's why i ask you. i tried contacting karl but didn't get any response. you're in the irc richt now, aren't you, so why do you tell me about real life at this moment of time?
15:50:10 Quit Flasher ("CGI:IRC (EOF)")
16:05:51 Quit rodpod (Read error: 54 (Connection reset by peer))
16:06:19Torneis there some reasonably easy way to disable the cache on PP?
16:06:26Torne(just to test something)
16:08:40*GodEater conducts the Summoning jhMikes ritual
16:08:52Torneheh, apparently i'm still blind
16:08:56GodEaterTorne: you might want to join in =/
16:09:08Torne"comment out init_cache()" should do it :)
16:09:20*GodEater cancels the ritual
16:09:22Tornei was looking too early
16:09:33Tornein the asm bits
16:09:37Torneand it's just not done until later :)
16:10:41TorneGodEater: this is the brute force way to check if it's cache line interference :)
16:11:38saratogalabwhat do you mean by cache line interference?
16:12:09Tornesaratogalab: the DMA code doesn't account for the memory not being cache line aligned and thus possibly containing other data
16:12:38Tornedepending what this other data is and when it gets accessed, the cache operations in the dma code might trash it
16:14:22Torneyah. the player is unusably slow without the cache but the albumart doesn't get corrupted and it doesn't seem to crash
16:15:59 Join Grahack [0] (
16:16:24saratogalabTorne: would it be possible to round to the nearest cacheline and then truncate?
16:16:50Tornesaratogalab: how to do it has been discussed in the tracker, you'd just use PIO for the start and end of the copy if they weren't aligned
16:17:00Torneand only DMA for cachelined aligned bits in the middle.
16:17:12Tornethat code just needs writing :)
16:18:01Torneoh great usb doesn't work now
16:18:07Tornei guess the system is too slow :)
16:18:12*Torne boots emergency disk mode. :)
16:26:44Syriushow can you check the version of rockbox from the command line Torne ?
16:26:58Tornelook in rockbox-info.txt
16:27:04Tornehas all the parameters it was built with
16:28:19SyriusTorne should I remove the .rockbox folder before I upgrade to 3.3 if my Version: r19569-081223 ?
16:28:46Torneshoul dbe fine to jus textract it over the top
16:28:59Torneif you removed the .rockbox folder you would lose all your settings etc
16:29:06Syriusyes I know
16:29:12Syriusokay just making sure
16:29:35Syriuscause I know with a lot of software it has problems if you do not first remove the software
16:29:40n1sSyrius: it should always be fine to just extract over the old .rockbox
16:29:54SyriusI had problems with that with deluge
16:30:06n1sin some rare cases of files being moved or renamed a few old will remain but it is harmless
16:30:14SyriusI just removed the preferenced folder and reinstalled and it was fine
16:30:35Syriusokay cool thanks Torne nls
16:31:23 Quit MarcGuay ("ChatZilla 0.9.85 [Firefox 3.5/20090624025744]")
16:55:04***Saving seen data "./dancer.seen"
16:56:19 Quit dmb (Read error: 113 (No route to host))
17:00:10 Join stoffel [0] (
17:09:56 Join BryanJacobs [0] (
17:16:26*Torne hacks in the stats patch and tries using dma for only requests which happen to be cacheline aligned by fluke. :)
17:18:24gevaertsTorne: that will be all USB tranfers, purely by fluke indeed :)
17:19:24Torneoh, really?
17:19:29Tornethat's possibly quite useful then
17:19:55 Quit teru ("Quit")
17:21:49gevaertsTorne: cbw_buffer = (void *)UNCACHED_ADDR((unsigned int)(audio_buffer+31) & 0xffffffe0);
17:22:23Torneso i can test dma a bit like that
17:22:57Tornei'm assuming cachelines are 32 bytes on PP5020? :)
17:23:40gevaertsI think so, yes. Have you looked at ?
17:23:55Tornei haven't, no
17:23:58Torneand that says 16 byte cachelines
17:24:19Tornei'm just Trying Things to see if i can get dma to work
17:24:53 Quit MarcGuay_ ("ChatZilla 0.9.85 [Firefox-3.5 3.5.1pre/20090704164440]")
17:29:05gevaertsTorne: the USB thing is for similar reasons, i.e. this way it worked. And if you're using 128k buffers anyway, aligning them to 32 bytes won't waste much anyway
17:29:07Grahackmcuelenaere: trying to install a pure lua lib which has this structure: libname/init.lua, I noticed that the Lua plugin couldn't reach it. says package paths can end with `?/init.lua` so we could go `#define LUA_PATH_DEFAULT "$/?.lua;" "$/?/init.lua;" VIEWERS_DIR"/?.lua;" VIEWERS_DIR"/?/init.lua;"` in rockconf.h. Works for me.
17:29:25Tornegevaerts: yeah. the problem with the ata code is it reads into all kinds of places in memory
17:29:53Torneyou can fiddle to get the audio buffer cache line aligned, but that won't help anything that calls read()
17:30:07Torneanywya the stats patch appears to work now i've painfully resynced it :)
17:30:24mcuelenaereGrahack: ok, I wondered why I removed that init part..
17:30:39*Torne tries some usb to get some DMA going :)
17:31:07gevaertsTorne: I think that if USB and the audio buffer use aligned reads, we can do things like only using dma if things are aligned
17:31:25Tornegevaerts: that might be ok, yah, at least until someone is prepared to write the code to top-and-tail requests with PIO
17:32:01mcuelenaereGrahack: do we want the VIEWERS_DIR"/?/init.lua;" part though? I'm not sure that putting lots of Lua libs in VIEWERS_DIR is a good idea..
17:32:09*gevaerts doesn't think that "if you want performamce, align the thing" is really bad
17:32:30*Torne checks the stats
17:33:15 Part linuxstb_ ("Leaving")
17:34:23Grahackmcuelenaere: why could it be bad ?
17:34:43 Join Strife89 [0] (n=Michael@
17:35:08mcuelenaereGrahack: I think putting those in a separate 'Lua' dir would be more appropriate
17:35:19Tornegevaerts: ok, the audio buffer is getting DMAs about 10% of the time with the code i have here
17:35:27Tornei think i need to fiddle with the buffer alignment patch
17:35:39Tornethe usb code does indeed do it basically all the time
17:36:05Torneif i can get this looking like it's working then i'll throw it into my real build and use it for a week or two
17:36:23 Join riek42 [0] (
17:38:17Grahackmcuelenaere: agreed, I was wondering from the start why putting actions.lua here, but where to put this Lua dir ? .rockbox/rocks/viewers/lua ?
17:39:18mcuelenaereGrahack: well I didn't want to fiddle with the build system to make a separate folder etc. but now I'll take a look
17:39:49mcuelenaere.rockbox/lua/ or .rockbox/rocks/viewers/lua/ sounds good to me
17:41:03GrahackI personaly prefer the latter
17:41:16 Part riek42
17:41:20Torneso does the info on firmware/export/ata.h.orig
17:41:43Torneso does the info on (which talks about PP5024) definately apply to pp5020?
17:41:50Tornei have no idea wha tthe PP model numbers mean :)
17:42:16saratogalabPP5022 and PP5024 are the same basically aside from the DAC
17:42:27mcuelenaereGrahack: I'll look into this later, am busy atm
17:42:32saratogalabPP5020 is an older model thats fairly close to PP5022
17:42:50saratogalabPP5002 is the oldest and is much different and very slow, its only in the Ipod 3G and older
17:42:53Tornei can't imagine an olde rone having bigger cachelines
17:43:02Torneso it's probably ok to check for 16-byte alignment only
17:43:19saratogalabi think we can only do DMA on PP5020 and abvoe anyway
17:43:26Torneyeah, it's in ata-pp5020.c
17:48:59Torneok, i don't understand buffering.c :)
17:51:12BryanJacobsTorne: ask
17:51:58*BryanJacobs thinks there should be a master's degree in Rockbox buffering
17:52:28TorneBryanJacobs: i want to arrange for the buffering code's calls to the storage layer to request reads into 16-byte aligned regions :)
17:53:12BryanJacobsthat would be in buffering_thread
17:53:20BryanJacobslook for that method
17:53:33BryanJacobsprobably near Q_BUFFER_HANDLE it'll call buffer_handle
17:53:44BryanJacobsand then in the body of buffer_handle you'll find the storage-layer calls, eh?
17:54:26BryanJacobsline 635, exactly
17:55:40BryanJacobsthe issue is that the read request could be for < 16 bytes and you can't just waste space in the buffer - the codecs expect contiguous regions - so you can't actually guarantee aligned reads
17:55:59 Quit Grahack ("Leaving.")
17:55:59 Quit n00b81 ("Leaving")
17:56:54Torneit won't be unless it's the end of the file or the end of the buffer, though, no?
17:57:19BryanJacobsotherwise it'll be BUFFER_DEFAULT_FILECHUNK bytes
17:57:54Torneso it doesn't need to realign itself at any point codecs would care about
17:58:03Torneas long as it was aligned correctly at the start of each handle and ata the wraparound point
17:58:48BryanJacobsyes, so you could just make the memory_handle correctly sized and alter add_handle to align it
17:59:59Dhraakellianis it possible to specify one font for the menu system and one for the wps?
18:00:05TorneDhraakellian: no
18:00:33Dhraakellianthen I guess it's fortunate that Plain Text VP looks okay(ish) with the built-in font
18:00:49*BryanJacobs would like to have a different menu font as he likes the NerdSketch theme
18:01:03*BryanJacobs also has good eyesight and so likes small menu text
18:01:07TorneBryanJacobs: fix the multifont code to be acceptable then :)
18:01:16*BryanJacobs remembers that patch and shudders
18:01:22Torneor just write a new one ;)
18:01:40BryanJacobsI think I'll do the work that pays the bills first
18:01:47BryanJacobslike the summer of code stuff :-P
18:01:57Tornebah, being paid :)
18:02:14Dhraakellianmy brother likes PlainTextVP with 08-Rockfont (which I set up for him), but he wants the (larger) default helvetica for the menu system
18:02:30saratogalabhes out of luck for now
18:02:39Dhraakellianwhat font is the built-in?
18:02:46Dhraakellianis it the same as schumacher clean?
18:04:01Dhraakellianbecause the PlainText VP theme specifies Schumacher Clean (although it looks better with 08-Rockfont)
18:04:24BryanJacobsI like how line 1281 has "register_buffering_callback" and "unregister_buffering_callback" listed but those functions don't actually exist in buffering.c
18:07:18Torneanyway, i need the *other* kind of alignment first, i think
18:07:43Tornebut there's already a patch for that, it's just out of date :)
18:11:18 Join toffe82 [0] (n=chatzill@
18:12:18Tornewell that doesn't seem to have changed anything for better or worse.
18:13:04BryanJacobsno noose is good noose
18:14:23 Quit Strife89 ("Leaving")
18:14:54 Quit saratogalab ("CGI:IRC (EOF)")
18:19:40TorneBryanJacobs: is it sufficient to align new_widx in add_handle to a multiple of 16 instead of 4?
18:21:33Torneno, not new_widx, that's wher ethe handle gets put
18:21:49Tornebuf_widx, after it gets incremented by sizeof(struct memory_handle)
18:25:10Torne..ok, i'm gonna stop for now. :)
18:41:43bertrikis there a rule of thumb for when to use a simple polling wait loop, and when to use a wakeup_wait/wakeup_signal?
18:42:28mcuelenaerebertrik: I think wakeup_wait is always preferred
18:42:43mcuelenaerewell of course not for very tiny microloops or so
18:44:44bertrikI would guess anything longer than the interrupt latency could use a wakeup*
18:55:05***Saving seen data "./dancer.seen"
18:58:21 Join Horscht [0] (n=Horscht2@xbmc/user/horscht)
19:00:11 Quit MrDuck (Read error: 110 (Connection timed out))
19:09:21 Join ej0rge [0] (
19:09:32 Join CaptainKwel [0] (i=2669ecc2@gateway/web/freenode/session)
19:11:26 Quit robin0800 ("Leaving")
19:14:49BryanJacobsTorne: until shrink_handle, yes
19:15:28BryanJacobswait... no
19:15:46BryanJacobsbuf_widx gets incremented as data are read into the handle
19:16:14BryanJacobsso it'll be fine unless the handle is moved or shrinks
19:16:46BryanJacobsif you align it there on line 252 you guarantee that every new handle is created with its data on a 16-byte alignment
19:18:28BryanJacobshowever, if you call read(),bufadvance(),shrink_handle(),and read(), the last read won't necessarily be aligned
19:19:27 Quit flydutch ("/* empty */")
19:22:25bertrikmcuelenaere, we currently use busy loops for i2c on meizu and ams sansa, those could take up to 75 us
19:22:38 Quit KBH ()
19:22:50bertrikmore like, _at least_ 75 us
19:23:04 Join domonoky [0] (n=Domonoky@rockbox/developer/domonoky)
19:23:46bertrikand I think a full LCD update on the fuze or e200v2 for example takes 10 ms
19:23:47 Join HBK [0] (
19:25:32bertrikI plan to commit the adc code for the meizus tonight, maybe also some more timer code
19:25:43 Join JdGordon| [0] (n=Miranda@nat/microsoft/session)
19:26:42bertrikperhaps convert some busy-wait loops into wakeup_wait
19:27:21 Quit _lifeless (Read error: 110 (Connection timed out))
19:29:40 Quit Lazatar (Remote closed the connection)
19:29:59 Join Lazatar [0] (
19:31:59JdGordon|can home+up be used as a combo on the clip?
19:33:13bertrikyou mean if it is technically possible?
19:33:44JdGordon|home+down does work so I'm not sure if its a keymap thing or its hardware
19:34:34bertrikit think it should be possible
19:35:57 Join jgarvey [0] (
19:36:20bertrikbut I don't like to use combos :P
19:36:50JdGordon|yeah yeah :)
19:37:34JdGordon|so obviously being late to the party... why isnt the clip supported yet?
19:37:45JdGordon|or are we still blocked with no manual and rbutil?
19:39:59bertrikplayback stops spontaneously sometimes on the clip
19:40:32 Join petur [0] (n=peter@rockbox/developer/petur)
19:41:54JdGordon|it does that on my ipods also :p
19:44:33Dhraakellianhmm... the button(s) for marking a number as possible in sudoku on the fuze is/are select+up currently
19:44:40Dhraakellianwould it be better for them to be long select?
19:44:48LambdaCalculus37JdGordon|: I think it's because there are still some SD driver bugs to work out.
19:45:05 Join _lifeless [0] (n=lifeless@
19:45:05 Quit _lifeless (Read error: 104 (Connection reset by peer))
19:50:31 Nick fxb is now known as fxb__ (
19:55:24 Join p3tur [50] (n=petur@rockbox/developer/petur)
19:56:08 Quit Lazatar (Operation timed out)
19:56:08 Join kugel [0] (n=kugel@rockbox/developer/kugel)
19:56:34 Join Lazatar [0] (
19:57:34 Quit barrywardell ()
19:58:21 Join merbanan [0] (
19:58:47kugelJdGordon|: do you have a clip now?
19:59:06JdGordon|yes :)
19:59:48kugelso why don't you just try whether home+up is possible? It should be
20:00:07JdGordon|I did... and like i said, i wasnt sure if it was a keymap or hardware issue...
20:00:15JdGordon|I'll play more tonight
20:01:34kugelwork on the keymap is surely welcome
20:01:44 Join barrywardell [0] (n=barrywar@
20:01:51kugelit's heavly based on the c200 keymap
20:01:58JdGordon|yeah, it sucks :D
20:02:11JdGordon|I started last night but ended up doing stuff... ill play tonight properly
20:03:03JdGordon|the comments say its based on the e200 doesnt it?
20:03:11 Quit BryanJacobs ("Java user signed off")
20:08:07 Join TheSphinX^ [0] (
20:09:32 Join martian67_ [0] (
20:09:58kugelJdGordon|: the c200 keymap probably also says this
20:10:27kugeladding keymaps is always c&p, hence barrywardell has done so many of them :)
20:10:53 Quit einhirn ("Miranda IM! Smaller, Faster, Easier.")
20:16:50bertrikI think the clip keymap is quite OK already
20:17:35kugelyou don't use plugins, do you? :p
20:17:57kugelbtw, I'm also against volume-in-lists
20:18:22 Quit Lazatar (Connection timed out)
20:18:26 Quit Sajber^1 (Read error: 104 (Connection reset by peer))
20:18:27kugelI'd rather put goto-wps and quickscreen (i.e. what UP and DOWN do on e200/fuze) on those
20:18:45kugelalthough, that won't work for the wps I guess
20:19:04JdGordon|I'm putting the wps on home+up and quickscreen on home+down... the logic is pressing home makes the button do what the image on it is
20:19:30JdGordon|there shuld be a setting to use the volume buttons as volume or as page up/down in the lists thoughg
20:19:47kugelcouldn't toggling wps and main menu be on plain home?
20:20:00 Join kushalone [0] (n=kushal@
20:20:05kugelas in configurable buttons? :/
20:20:09 Join Thundercloud [0] (
20:20:19JdGordon|some drongo ( :D ) put goto rec on long home....
20:20:54kugelI was surprised that it was Llorean's idea, I remember him to be against configurable btutons
20:21:00JdGordon|and short home should usually go to the menu, but keeping with every other target, pressing it again should go back to the previous screen from the top menu, so it cant really be goto wps from there
20:21:16JdGordon|what was Llorean's idea?
20:21:30kugelthe setting for volume in lists
20:21:59JdGordon|i dont think he said anything about making it an option...
20:22:09kugelWhat's co-opt then?
20:22:38kugelisn't it already doing volume in lists?
20:23:26kugelmaybe I got him wrong then
20:24:47Dhraakellianlong record going to the record screen was annoying with the e200
20:25:00*JdGordon| does want single finger goto wps and menu
20:25:37bertrikso we can map that on HOME, right?
20:25:50*gevaerts suddenly remembers that he got annoyed a bit by the D2 keymap yesterday. Stop is too close to hold-off...
20:26:16JdGordon|no, because home is goto menu/previous
20:26:22Dhraakellianquestion regarding Fuze Sudoku binds: how deliberate are they? Is there any particular reason for them to not be closer to the e200?
20:26:25JdGordon|or should be
20:27:38bertrikHOME could be goto wps (or goto FM) when you are in the menu
20:28:08 Join shotofadds [0] (
20:28:28JdGordon|in keeping with every other target it shuold go to previous (which it does)
20:28:48JdGordon|maybe long home goto wps
20:29:12shotofaddsgevaerts: do you think it would be better if a short POWER press went to the menu instead?
20:29:26shotofaddsi agree it's annoying the way it is currently
20:29:37gevaertsshotofadds: maybe. I haven't thought about it much
20:29:57gevaertsOr maybe my fingers can just get used to it
20:30:05bertrikJdGordon, well what do you like more, single-finger WPS or goto-previous?
20:30:08shotofaddsI still find it annoying now...
20:30:44JdGordon|bertrik: I dont tihnk it would be an issue if home in the wps went to the menu instead of down
20:30:53gevaertsI think stop is useful to have on a physical button though, and there aren't that many of those
20:31:05JdGordon|home does SFA i tihnk
20:31:13shotofaddsgevaerts: well, there's always long POWER ;-)
20:31:23gevaertsshotofadds: that will stop it all right :)
20:31:49kugelJdGordon: the volume buttons........
20:32:14kugelwho *needs* volume in lists really of the wps is 1 press away.
20:32:25JdGordon|kugel: I think if we did that, volume should be up/down and the actual buttons do what they say
20:32:40JdGordon|but that should be configurable... :D
20:32:56kugelI disagree, but still better than what's now
20:37:02*pixelma scrapped forced horizontal scrolling on the c200 recently to get a "go to WPS button" which is "long right" now
20:37:51pixelmaalthough I also found it quite nice to have "volume up" for it and then have no volume in lists
20:38:41kugelJdGordon: using volume buttons for up/down is a major annoyance. you'd need to move the finger from the side to the middle and back constantly while browsing
20:38:54Dhraakellianthe only difference between the e200 and c200 is that the wheel is replaced by two volume buttons, right?
20:39:04JdGordon|the thing is tiny, so you have to rearrange your girp anyway
20:39:26JdGordon|and where does the brain mapping come in for up being wps and down being qs?
20:39:32bertrikJdGordon, I won't
20:39:59DhraakellianJdGordon|: up = play = go to the display of what's playing?
20:40:27JdGordon|the play picture is on the other button though
20:40:31pixelmaDhraakellian: yes but that is a quite important difference, especially since the volume button is quite a bit away from the main pad
20:40:31bertrikDhraakellian, the clip has no rec button and having no wheel means there nothing in the way of the left/right/up/down buttons
20:41:12JdGordon|the buggers should have put a microSD slot in and a wheel!
20:41:17pixelmahe asked about the c200 though
20:41:28kugelJdGordon|: you're too focussed on the pictures on the buttons...we ignore those on many targets
20:41:38JdGordon|no we dont...
20:41:46*Dhraakellian is watching the convo out of curiosity and such
20:41:47JdGordon|we go by them on far more than ignoring
20:41:57kugelI didn't say most
20:42:24kugela keymap which isn't totally insane is much more preferrable
20:42:41JdGordon|there needs to be some logic to it though...
20:42:54JdGordon|I shoudlnt have to open the manul to figure out how to use it
20:43:21kugeloh yea, and putting up/down which are on the side is clearly logical
20:43:30kugels/which ar//
20:43:56JdGordon|its a verticle bar... yes its bloody logical
20:44:04JdGordon|far more than using it for arbitrary commands
20:44:09bertrikI have a very hard time seeing the logic in it
20:44:24bertrikit even says "volume"!
20:44:34kugelshow me a player which doesn't have the navigation buttons on the front
20:44:35bertrikat least my clip does on those buttons
20:45:30*JdGordon| is now confused
20:45:46JdGordon|is bertrik agreeing with me or kugel?
20:45:51JdGordon|or neither
20:46:05kugelJdGordon|: He's not seeing the logic in your proposal
20:46:36kugelbecause there is no logic. even if we go that route to map functions to the fancy pictures, it doesn't work for volume
20:47:02JdGordon|it is ALOT harder to see the volume text than it is to see the pictures
20:48:40bertrikI want up/down/left/right navigation on the buttons around the select button, not up/down on volume. I prefer the volume buttons to control volume.
20:49:04kugelbut the PICTURES!
20:49:21*kugel stops being sarcastic
20:49:30*JdGordon| punches kugel in the nose
20:49:39JdGordon|I'm not saying we have to use the picutres..
20:49:50JdGordon|I'm saying having those actions on the volume button makes no sense
20:49:54amiconnDhraakellian: The built-in font uses the same glyphs as 08-Schumacher-Clean, but only the ISO8859-1 codepoints
20:49:55bertrikthe pictures should have meaning in the WPS, not in the menu IMO
20:50:09amiconnThe loadable 08-Schumacher-Clean goes beyond that
20:50:33JdGordon|HOME should goto the main menu though... not the bottom button which should be the context menu button
20:50:35Dhraakellianamiconn: ah
20:50:53*shotofadds starts his first D2 battery_bench (mp3 from SD). I'm going for a *pessimistic* 18hrs, since I've seen RB play FLACs from internal flash for a solid 24hrs, and that wasn't even on a full charge...
20:51:09shotofaddss/going for/expecting
20:51:24*Dhraakellian should do a batterybench on his Fuze
20:51:56Dhraakellianload up the 10-symphony Bruckner cycle (q6 Vorbis) on repeat
20:52:02Dhraakelliansee if it makes it all the way through
20:52:30pixelmashotofadds: tell us if it beats the M5L record :)
20:52:37kugelJdGordon: why should the bottom one context menu? It's on long select on the majority of targets
20:52:49kugelwe even changed it from bottom to long select on the e200
20:52:59pixelmaand the c200
20:53:10JdGordon|then both should goto menu
20:53:24shotofaddspixelma: now that would be impressive!
20:53:29Unhelpfulamiconn: right... and if we start using iram on beast we can map it wherever we want. can we possibly move iram's mapping on the other arm7tdmi targets, or is that not under our control?
20:53:32JdGordon|how HOME can do anything but goto the main menu is beyond me
20:53:48*JdGordon| gets his first audio fubar on the clip
20:54:09ZambeziI have stable 3.0. It might be time for a flash. :-)
20:54:10amiconnUnhelpful: IRAM on PP cannot be remapped afaik, and also SDRAM cannot be mapped anywhere above 0x40000000
20:54:18*gevaerts still wants to know how long the M5L lasts with FM
20:54:27kugelJdGordon|: no-one is arguing against home for menu I think
20:55:09***Saving seen data "./dancer.seen"
20:55:38kugelshotofadds: does the d2 have some sort of sd_enable() to power down the sd when unused?
20:56:19shotofaddsat the moment we just turn the clocks off. I assume there's some way to power it down, but it's not done yet
20:57:10Dhraakellianhm... I've found that my e260 and Fuze don't appear to get full charge from my computer (only getting up to 95ish, give or take, according to the statusbar)
20:57:12amiconnSD cards do auto power down. So the only part that might need explicit powerdown would be the controller
20:57:32amiconnBut if you stop clocks, remaining power consumption should be very low
20:57:53shotofaddswe could disable the controller block, but like you say, I doubt it would make much difference
20:58:27kugelI think we're not doing much more on the samsas
20:58:54*shotofadds just copied the PP code ;-)
20:59:23domonokykugel: please use sansa AMS instead of samsa. :-)
21:00:31 Quit Xerion (Read error: 104 (Connection reset by peer))
21:00:49Dhraakelliansamsa:sansa AMS::sammich:sandwich?
21:01:13 Join Xerion [0] (
21:01:51Unhelpfulamiconn: the best thing i've tried so far, i think is just removing -mlong-call. we'll need stubs to handle gcc-generated calls to mem*, since we can't control how those are called, and there might *still* be some problems with static functions. it looks as if without -mlong_calls there's almost no way to get make a long call to a function that happens to be defined in the same file.
21:01:59kugelshotofadds: I suspected that when looking at the commit diff :)
21:02:23amiconnWhat about this eabi/binutils 2.19 thing? That sounds like a nice way to go - if it works
21:05:17Unhelpfulamiconn: i'm not sure. i don't really like the idea of having bunches of autogenerated stubs whenever a function is called that's too far away.
21:06:44amiconnBetter than unnecessary long calls I would expect
21:07:29Torneit should be reasonable, i think
21:07:47*shotofadds really should disable long-calls for the D2 build, since we don't use IRAM (yet)
21:08:03Torneit will try and use the same stubs as much as it can
21:08:46Tornethe stubbed branches obviously are one more instruction but a regular branch is cheap
21:09:39amiconn line 72
21:11:05Unhelpfulso we'd be adding one instruction per function when some code calls that function out of range. and the speed cost is one relative branch per actual out-of-range call.
21:11:21kugeldomonoky: for deb packaging
21:11:25kugelnot for us..
21:11:46Torneyou'd be making most functoins smaller, not bigger
21:11:59domonokykugel: it not problem to build rbutil non-statically... so that can be the blocker..
21:12:05kugelassuming he also wants it to be in the debian/ubuntu/whatever repos
21:12:25TorneN calls to a far function becomes N+2 instructions instead of 2N instructions
21:12:37domonokythe bigger problem is, that rbutil still changes often..
21:12:59Torneand yes, the far calls are slower by one relative branch, but it means that every other call can always be relative
21:13:28kugeldomonoky: I don't think that's a problem, except for debian stable maybe.
21:14:43kugelthis eabi thing seems to have a number of other differences to the old abi
21:14:45Torne(in fact 2N instructions plus at least one copy of the actual address depending how smart it manages to eb with the constant pools)
21:14:49Unhelpfulso, it's a code-size win vs long calls everywhere, except for functions that need exactly one long call. it's not *quite* as big a win as if we can use long calls exactly where we need them. the situation for speed is probably similar, since we're removing probably rather a few unnecessary long calls.
21:15:05domonokykugel: so if that also isnt a problem, its only lazyness that nobody made a package. :-) But i would expect that if we have packages, people will often use old rbutil versions, as the repositorys probably will have quite some lag.
21:15:11Tornekugel: it's not clear from the docs whether it's actually mandatory for it to be EABI for it to work
21:15:16Tornethe source implies it might work anyway
21:15:23Tornei've not got a suitable binutils installed so i've not tried it yet
21:15:33kugelI'm worried about the struct alignment thing
21:16:31 Join SeismicMike [0] (
21:16:48SeismicMikehas anyone ever installed on a Sansa e260? I'm having some trouble
21:17:10SeismicMikeI'm in Windows and I don't know what to put down for the mount point because it doesn't give the device a drive letter
21:17:19SeismicMikeI can't figure out how to give it a drive letter.
21:18:18SeismicMikewait... nm.. that's when it was in MTP mode
21:18:27SeismicMikeI just switched it to MSC mode and it has a drive letter now...
21:18:40Tornekugel: EABI structs are often *smaller* though
21:18:51Tornekugel: we might have to fix places that were making assumptions about packing
21:18:57Tornebut you may find it's actually a memory win :)
21:19:19Unhelpfulasm that touches structs may be in trouble.
21:19:32kugelI'd willing to pay a bit memory for speedup due to alignment
21:19:45kugelUnhelpful: Do we have those?
21:19:48Tornekugel: what? no, it never packs stuff below its natural alignment
21:20:16Unhelpfulkugel: i'm responsible for at least one instance, jpeg_idct<width>h asm.
21:20:39kugel"Under the EABI there is no minimum and the alignment is determined by the types of the components it contains. " not sure what it means
21:20:40Unhelpfulsince the output is to an array of struct{ char;char;char; }
21:21:14TorneUnhelpful: so that ends up with 4-byte alignment atm, yes?
21:21:33kugelcould it mean the alignment is determined by the biggest datatype?
21:21:48Tornekugel: it means the alignment of the whole struct is whatever makes the types in it all aligned at once.
21:21:50bertrikis there anything special about the wakeup_XXX functions? I see they are only defined for some specific CPUs
21:21:51kugelchar;char;char would be 3, but char;char;int would be 4?
21:21:55UnhelpfulTorne: correct. the particular code in question would not be harmed speed-wise by making tose 3-byte aligned
21:22:26Tornekugel: char;char;int; ends up with size 8, alignment 4
21:22:33Tornetwo bytes of padding before the int
21:22:50kugelyea, I don't know why I was correcting myself to 8 :/
21:22:52Tornethat's the same under both abis
21:23:15Tornechar;char;char; in oldai is size 4 align 4, in eabi it's size 3 align 1
21:23:18kugel"can break code that writes binary files by dumping and reading structures." <−− rockblox does that :(
21:23:36Tornethe new struct rules never make anything bigger unless you have 64-bit fields
21:23:39 Part SeismicMike
21:23:43kugelTorne: hm, it seems reasonable then
21:23:53Torneit requires higher stack alignment :)
21:23:56Tornewhich may break asm
21:23:59Torneand may use more stack
21:24:15kugelWhy that, btw?
21:24:17Torneasm functions can't push odd numbers of registers and then call C funcitons
21:24:21mcuelenaerebertrik: that's to decrease binsize
21:24:26Torneso that 64-byte types are naturally aligned on the stack
21:24:34Torne64-bit even
21:25:05kugelstill not really logical to me
21:25:09Unhelpfulbut the source says that we *might* get the stubs generation without all of these ABI changes?
21:25:26TorneUnhelpful: it might. one thing at a time, i guess
21:25:52Unhelpfulpresumably if that's the case all one really need do is changes the binutils version for ARM in
21:25:54kugelYou don't have 64bit registers, i.e. you need to load/pop 2x32bit, I don't see a need for 8byte alignement
21:26:12TorneLDRD needs 8 byte alignment
21:26:17bertrikmcuelenaere, ok, just surprised that so few targets seem to use it, and slightly unsure if it requires something that I'm not aware of yet
21:26:28 Quit courtc (Read error: 113 (No route to host))
21:26:28Torneso does VFP double format
21:26:31Torneand some other things
21:26:34mcuelenaerenot that I know of, at least I didn't need to do anything special to use them
21:26:40*gevaerts thinks that code that reads and writes structs to disk for long-term storage without packing them is broken
21:26:46*Dhraakellian changes some buttons for Sudoku on the Fuze and checks to see how they work out
21:26:56*Unhelpful agrees with gevaerts on this
21:27:33Unhelpfulit's also nearly impossible to change what is/isn't stored without simply discarding old saves... this is why i changed pictureflow to use a configfile.
21:28:17*Unhelpful has already modified and is building :)
21:29:01TorneUnhelpful: let me know how it goes, i gotta go do stuff :)
21:29:12amiconnTorne: LDRD is said to need 8 byte alignment, but in fact it works with 4 byte alignment as well
21:29:22kugelgevaerts: you're saying the struct should have __attribute__((packed))?
21:29:54gevaertskugel: yes, with possibly manual padding
21:30:18 Join courtc [0] (n=court@unaffiliated/courtc)
21:30:32Unhelpfulkugel: if it doesn't, an abi change could break old saves. it's not like we've promised *never* to update gcc/binutils.
21:30:39kugelamiconn: the docs suggest it's not (or at least suggest it's not guaranteed to be atomic anymore)
21:30:47Unhelpfulhowever, adding that attribute will of course break it now. :)
21:31:12kugelmaybe it will just work also? :) it has only ints and an array of shorts
21:31:59amiconnIiuc the only differences between old arm abi and eabi are floating point related, and we don't use that
21:32:15*Unhelpful sincerely hopes that everywhere that does this at present will be smart enough to at least check the size of the read
21:32:29Unhelpfulthen you just get your old save or config invalidated, but nothing will crash
21:33:25 Join Sajber^ [0] (
21:34:01 Join balug_ [0] (
21:34:04Unhelpfuli believe what i recall seeing in the manual was that ldrd works with four-byte alignment but does an extra read in this case
21:34:05kugelUnhelpful: rockblox checks, but I don't think checking for sizeof(struct) after telling read() to read sizeof(struct) bytes help for this case
21:34:07bertrikkugel, the wakeup_signal/wait mechanism could also be used in the fuze LCD driver (instead of polling for the volatile flag)
21:34:46kugelbertrik: so you're telling you're volunteering to write the code? :D
21:34:56Unhelpfulkugel: ah... if the "new" size is shorter, it will still succeed.
21:35:01Unhelpfulgo use configfile! ;)
21:35:18bertrikkugel, no, well maybe
21:35:32 Quit barrywardell ()
21:35:41 Quit stoffel (Remote closed the connection)
21:35:45kugelUnhelpful: why? the size parameter of read() and the check after have the same size
21:35:46bertrikI also looked into the button code and I don't quite understand it
21:36:29Unhelpfulkugel: i mean that the *test* will succeed. it will read exactly the number of bytes it wanted, and not know that it's discarded some. :/
21:36:43kugelthe test will always succeed, that's what I'm saying
21:36:56amiconnHmm. Iiuc eabi will alomost automatically support vfp - might be interesting for special purposes on the beast
21:37:11Unhelpfuli didn't think the beast had vfp?
21:38:15bertrikkugel, even at 100 fps LCD update rate, a full update takes 10 ms, that's quite a long time to block
21:38:26 Quit balug_ (Client Quit)
21:38:48kugelyes, but we can't help it, can we?
21:39:10bertrikso some yielding or switching threads while waiting for the interrupt would be nice
21:39:34kugelthe ISR is blocked
21:40:04kugelOr what interrupt are you refering to?
21:40:37bertrikthe DBOP FIFO (almost) empty interrupt
21:40:50kugeloh with my patch
21:41:13kugelI think I have tried yielding without slow down
21:41:27kugelbut the issues is with the blue bars anyway
21:41:55bertrikkugel, I suspect the blue bars have something to do with the button readout
21:42:14kugelWhy do you think that?
21:42:38kugelon the e200, there's no button readout if the lcd is currently busy with updating, it still has the bars
21:42:57kugelno readout on dbop, at least
21:43:34bertrikbecause the blue bar changed slightly when pressing buttons, and because I see two different button readout functions that are not obviously protected from running together with LCD update (to me at least)
21:43:55kugellook at lcd_button_support()
21:44:33Dhraakellianwhat do you guys think of for a Sudoku button change on the Fuze?
21:44:40kugelthe fuze still reads the scrollwheel, that's correct. But the e200 doesn't even try to touch dbop in during updates
21:45:23amiconnThis eabi thing is definitely something we should try
21:45:41bertrikas far as I can see, the the button_gpio function is not protected from running at the same time as lcd update
21:45:57bertrikwhy are there two button read functions anyway?
21:46:03kugelyes, because it doesn't change the fifo
21:46:06Dhraakellianmenu is a short click on the home button (quit is still long home). I moved menu away from the power/hold slider on the side
21:46:23Unhelpfulper infocenter: "ARM1136JF-S processor has a floating point coprocessor." without any mention of VFP... but then the VFP11 docs state: "This manual only describes the implementation of the VFP11 for the ARM1136JF-S processor."
21:46:32kugelit's running in an interrupt, and sets the state of the gpios back
21:47:04kugelUnhelpful: the vfp is the fpu, IIUC
21:47:42bertrikkugel, but button_gpio changes the function of the DBOP hardware ports, right?
21:48:05kugelbertrik: why should it be one? They're getting at the hardware with different approaches. Also, the dbop function runs more often
21:48:23amiconnkugel: There also was FPA for older ARMs
21:48:34kugelthis would show below 100fps too I think
21:48:47 Quit n1s (Read error: 110 (Connection timed out))
21:48:52kugelamiconn: yes, I know. I was refering to the arm11 Unhelpful mentioned
21:49:08bertrikI don't see the need for two button read functions
21:49:12kugeleven more below 100fps, since the update needs longer
21:49:28kugelbertrik: "Also, the dbop function runs more often"
21:49:32*Unhelpful doesn't see "has an FPU" and automatically assume it's SIMD :)
21:50:36kugelI don't see what's wrong with it, are you trying to safe 2 instructions?
21:50:45bertrikI don't understand, this looks hopelessly complex to me
21:51:21bertrikbut maybe I don't know all the weird things this hardware has ... :P
21:52:12kugelthe dbop function is called twice per tick, 1x in button_read_device() and 1x in the timer interrupt outside of call_tick_tasks() (the timer is configured to interrupt every 5ms)
21:52:23bertrikI think it would be bad if button_gpio would be called when LCD update was in progress. Is there any mechanism to prevent this?
21:52:41kugelI doubt this, but one could try
21:53:01kugellcd_button_support() returns false if an update is running
21:56:25 Join matsl [0] (
21:57:04kugelbertrik: don't you think it would show even more with lower fps, the update takes longer then (i.e. possibly button_gpio is called twice during an update)
21:58:10bertrikyes, possibly.
21:58:57bertrikI can't really explain that, but I still suspect we're doing something wrong now
21:59:16 Quit LambdaCalculus37 ()
22:09:35 Join JdGordon|| [0] (n=Miranda@nat/microsoft/x-e189c50f66bf57ac)
22:14:29 Quit JdGordon| (Nick collision from services.)
22:14:37 Nick JdGordon|| is now known as JdGordon| (n=Miranda@nat/microsoft/x-e189c50f66bf57ac)
22:16:38Unhelpfulhrm... i had to add a -Wa,-meabi=4 to GCCOPTS. trouble now seems to be that libgcc was not similarly compiled...
22:17:51CIA-71New commit by bertrik (r21734): S5L8700: Implement ADC driver
22:21:06 Nick martian67_ is now known as m67_l3 (n=martian6@about/linux/regular/martian67)
22:21:20 Nick m67_l3 is now known as martian67 (n=martian6@about/linux/regular/martian67)
22:23:16 Join r0b- [0] (
22:23:48mcuelenaerebertrik: is it possible that adc_read() is accessed from different threads?
22:23:48 Join mirak [0] (
22:24:27bertrikmcuelenaere, not sure, but could happen I think
22:24:44bertrikdo you think it's not necessary?
22:25:11mcuelenaereah /me sees that the Onda does the same
22:25:11bertrikto protect multiple access I mean
22:25:45bertriknow that I think of it, it's probably only the power thread that uses it to read the battery voltage
22:25:46mcuelenaereno, it's just that battery_adc_voltage() on the Onda VX747 is a bit hackish implemented, and I was searching for a reason what was causing the problems I had
22:30:42 Quit martian67 ("out")
22:30:59 Join martian67 [0] (n=martian6@about/linux/regular/martian67)
22:31:56 Quit martian67 (SendQ exceeded)
22:32:55 Join martian67 [0] (n=martian6@about/linux/regular/martian67)
22:33:47 Quit martian67 (SendQ exceeded)
22:34:29 Join martian67 [0] (n=martian6@about/linux/regular/martian67)
22:35:23 Quit martian67 (SendQ exceeded)
22:35:48 Join martian67 [0] (n=martian6@about/linux/regular/martian67)
22:37:16 Join Hillshum [0] (n=chatzill@unaffiliated/hillshum)
22:39:43kugelmcuelenaere: should be safe
22:40:00kugelit has mutexes
22:40:38mcuelenaerekugel: you mean battery_adc_voltage() on the VX747? see the 'primitive wakeup event' thingy ..
22:40:39kugelat least, if your i2c uses them. the generic, and as3514 i2c have this mutex
22:41:34 Join n1s [0] (n=n1s@rockbox/developer/n1s)
22:41:35mcuelenaerekugel: huh? i2c?
22:41:48mcuelenaere(btw I just see those don't use mutexes)
22:42:11kugelI'm have no idea how mutexes work, but those are meant to block threads out of code that's currently in use by another thread, IIUC
22:42:21kugelmcuelenaere: which "those"?
22:42:53mcuelenaere(the functions in them, hence the plural ;) )
22:43:19kugelah, they probably should just have the mutex and be thread safe :)
22:44:01*mcuelenaere enlarges his TODO list ;)
22:46:47 Join luke_dozen [0] (
22:47:08amiconnBagder: The client reconnect problem is still there (dunno if it's supposed to be fixed)
22:47:25BagderI don't think anyone has tried to fix it yet
22:51:47 Quit merbanan (Remote closed the connection)
22:51:49 Join n00b81 [0] (n=taylor@unaffiliated/n00b81)
22:51:54 Join FlynDice_ [0] (
22:54:00 Quit saratoga (Ping timeout: 180 seconds)
22:55:12***Saving seen data "./dancer.seen"
22:57:23 Quit _zic (Read error: 110 (Connection timed out))
23:00:32 Quit Ridayah ("The Rise and Fall of the Heavens themselves is dependant upon Humanity's belief and disbelief.")
23:01:21 Join Ridayah [0] (
23:01:44 Quit p3tur (Remote closed the connection)
23:01:56 Quit petur ("Zzzzzz")
23:02:23 Join dmb [0] (n=Dmb@unaffiliated/dmb)
23:03:11 Quit TheSphinX^ ("XChat@Linux")
23:04:13 Quit jgarvey ("Leaving")
23:04:49bertrikHillshum, you meant FS #10210?
23:05:53HillshumYes, though I'm not sure. Did it change the keymap on the screen where one browses the video?
23:06:04 Quit n1s (Read error: 110 (Connection timed out))
23:07:01*Hillshum compiles a sim
23:08:04 Join n1s [0] (n=n1s@rockbox/developer/n1s)
23:10:46 Quit dfkt (Read error: 110 (Connection timed out))
23:11:07 Quit dmb (Client Quit)
23:19:07 Quit luke_dozen (Remote closed the connection)
23:19:11 Join dmb [0] (n=Dmb@unaffiliated/dmb)
23:19:19 Join tessarakt [0] (
23:19:43 Join luke_dozen [0] (
23:20:25 Join robin0800 [0] (
23:24:38 Join funman [0] (n=fun@rockbox/developer/funman)
23:25:22funmanis it possible to download current builds for an old svn revision ? (r21710)
23:25:40HillshumI think only the daily build is archived
23:26:51funmani could build this revision myself but the i think the addresses inside rockbox.elf could change with a different gcc version
23:27:45HillshumDid you find out the version it used to build it?
23:28:17funmanno, but the gcc version is mentioned in rockbox-info.txt, i'll ask the person
23:28:33Hillshumit might be on the build table
23:29:10funmanpenultimate entry ;)
23:29:28kugel :(
23:31:08oboI now have the LCD controller datasheets, as well as the routines to write to the display, but I can't actually get it all to tie together and display anything... :(
23:31:21 Nick fxb__ is now known as fxb (
23:31:30Hillshumbertrik: Nevermind, mpegplayer's fine
23:31:43 Quit r0b- (Read error: 110 (Connection timed out))
23:32:00Bagderobo: so did you then find the init sequence in the OF that matches the datasheet?
23:32:32oboBagder: pretty much - I've found several init routines for that controller, and most, but not all of the values tend to match
23:33:04obosome of those don't seem to matter too much, since they're gamma curves etc
23:33:40Bagderso could it be a separate power-on to the LCD or similar that needs to be done?
23:33:52oboI've attached the datasheets plus my attempt to the GSoCSansaView wiki page if anyone fancies a look?
23:34:06oboBagder: since I'm running after the OF bootloader, shouldn't that be done already?
23:34:23Bagderright, one would think so...
23:34:30HillshumDoesn't it depend on when the OF inits?
23:34:51kugelobo: I assume you have a all white display right now?
23:35:06obokugel: no, still the OF bootlogo
23:35:21kugeloh, that's funny too :)
23:35:30oboI can create a white display by flipping a GPIO bit...
23:36:03kugelcan you somehow "manually" clearing the hw-framebuffer then a lcd update?
23:36:13 Quit funman ("leaving")
23:37:24DhraakellianI have a little patch to move the sudoku menu on the Fuze from the power button (on the side) to the home button (on the front). Should I make a bug report for it?
23:38:13 Join safetydan [0] (n=deverton@rockbox/developer/safetydan)
23:38:22HillshumDhraakellian: put it on Flyspray yes, but mark it as a patch\
23:38:43 Join midgey|w [0] (i=836b0056@gateway/web/freenode/x-c2fe074e39193f1d)
23:39:00obokugel: I'll need to find out how to do that...
23:39:21kugelYou have the ds, haven't you?
23:39:42kugelthe registers of the memory should be there
23:40:04obothe init routine sets them to 0x0
23:41:48*Dhraakellian ponders also including some column formatting in the patch
23:42:33Hillshumwhitespace changes?
23:43:18obokugel: 0x20 and 0x21 are both set to 0x0 (horiz and vert GRAM address set)
23:43:19kugelobo: huh? you can change the location of the output memory?
23:43:21Dhraakellianyeah. all the other sections that are lined up as columns appear to do it with spaces. the Fuze section uses tabs
23:43:49Hillshumyes, four spaces are to be used in place of tabs
23:44:07kugelobo: I think that's only interesting for doing partial updates. I mean the actual memory
23:45:13 Join r0b- [0] (
23:45:19 Quit Thundercloud (Remote closed the connection)
23:45:55obokugel: it has a completely different set of registers for partial updates? (0x80 to 0x85), and 0x51 and 0x53 also set the display size...
23:46:04kugelhmm, I think I'm confusing things
23:46:27DhraakellianHillshum: vs.
23:46:49kugelobo: "0x20 and 0x21 are both set to 0x0 (horiz and vert GRAM address set)" this is probably the start pixel for updates
23:47:51kugelis your lcd_update() maybe buggy?
23:48:21HillshumDhraakellian: I don't know which is better
23:48:27obokugel: that's entirely possible( if not probable)
23:49:43kugelalthough I guess the e200's lcd_update should work
23:50:45DhraakellianHillshum: they should be the same except that the second one just has some extra whitespace stuff to line the columns up better
23:51:11obokugel: it doesn't seem to work like the e200 controller? AFAIK you don't point the controller to your buffer the way the e200 does?
23:51:27kugelWhy that?
23:51:31HillshumYes, but I don't a whole lot about the whitespace rules
23:51:59kugelHow would that work? You need to pass the data from the rockbox framebuffer somehow
23:52:12oboI've not seen that in any of the init routines that are floating out on the web for this controller...
23:52:36obokugel: yes, more like the way the c200 works...
23:54:32kugelbasically, you have at least make sure to set the window position (i.e. start pixel and end pixel) write a command that updates
23:54:53 Join BdN3504 [0] (n=5ce227df@gateway/web/cgi-irc/
23:56:56 Quit domonoky (Read error: 104 (Connection reset by peer))
23:58:32 Join Zagor [242] (
23:58:50 Quit matsl (Read error: 110 (Connection timed out))

Previous day | Next day