mirror of
https://github.com/RaySollium99/libpicofe.git
synced 2025-09-04 14:37:46 -04:00
gp2x: pollux: various fixes
This commit is contained in:
parent
9a5a0dc9ff
commit
39014486f9
4 changed files with 17 additions and 9 deletions
|
@ -24,6 +24,7 @@
|
|||
#include "soc.h"
|
||||
#include "soc_mmsp2.h"
|
||||
#include "plat_gp2x.h"
|
||||
#include "../linux/sndout_oss.h"
|
||||
#include "../plat.h"
|
||||
|
||||
static int mixerdev = -1;
|
||||
|
@ -429,6 +430,8 @@ void mmsp2_init(void)
|
|||
|
||||
gp2x_get_ticks_ms = plat_get_ticks_ms_good;
|
||||
gp2x_get_ticks_us = plat_get_ticks_us_good;
|
||||
|
||||
sndout_oss_can_restart = 0;
|
||||
}
|
||||
|
||||
void mmsp2_finish(void)
|
||||
|
|
|
@ -86,7 +86,8 @@ static void unset_ram_timings(void)
|
|||
|
||||
static unsigned int gp2x_get_ticks_us_(void)
|
||||
{
|
||||
TIMER_REG(0x08) = 0x4b; /* run timer, latch value */
|
||||
unsigned int div = TIMER_REG(0x08) & 3;
|
||||
TIMER_REG(0x08) = 0x48 | div; /* run timer, latch value */
|
||||
return TIMER_REG(0);
|
||||
}
|
||||
|
||||
|
@ -302,6 +303,9 @@ void pollux_init(void)
|
|||
TIMER_REG(0x44) = ((timer_div - 1) << 4) | 2; /* using PLL1 */
|
||||
TIMER_REG(0x40) = 0x0c; /* clocks on */
|
||||
TIMER_REG(0x08) = 0x68 | timer_div2; /* run timer, clear irq, latch value */
|
||||
|
||||
gp2x_get_ticks_ms = gp2x_get_ticks_ms_;
|
||||
gp2x_get_ticks_us = gp2x_get_ticks_us_;
|
||||
}
|
||||
else {
|
||||
fprintf(stderr, "warning: could not make use of timer\n");
|
||||
|
@ -323,9 +327,6 @@ void pollux_init(void)
|
|||
plat_target.cpu_clock_set = pollux_cpu_clock_set;
|
||||
plat_target.bat_capacity_get = pollux_bat_capacity_get;
|
||||
plat_target.step_volume = step_volume;
|
||||
|
||||
gp2x_get_ticks_ms = gp2x_get_ticks_ms_;
|
||||
gp2x_get_ticks_us = gp2x_get_ticks_us_;
|
||||
}
|
||||
|
||||
void pollux_finish(void)
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
#include "sndout_oss.h"
|
||||
|
||||
int sndout_oss_frag_frames = 1;
|
||||
int sndout_oss_can_restart = 1;
|
||||
|
||||
static int sounddev = -1, mixerdev = -1;
|
||||
static int can_write_safe;
|
||||
|
@ -41,15 +42,17 @@ int sndout_oss_init(void)
|
|||
|
||||
void sndout_oss_stop(void)
|
||||
{
|
||||
#ifdef __GP2X__
|
||||
/* restarting audio on GP2X causes trouble */
|
||||
return;
|
||||
#endif
|
||||
/* restarting audio on GP2X causes trouble,
|
||||
* not restarting on Caanoo causes trouble */
|
||||
if (!sndout_oss_can_restart)
|
||||
return;
|
||||
|
||||
if (sounddev < 0)
|
||||
return;
|
||||
|
||||
ioctl(sounddev, SOUND_PCM_SYNC, 0);
|
||||
// sync causes trouble on Caanoo..
|
||||
//ioctl(sounddev, SOUND_PCM_SYNC, 0);
|
||||
|
||||
close(sounddev);
|
||||
sounddev = -1;
|
||||
}
|
||||
|
|
|
@ -10,3 +10,4 @@ void sndout_oss_exit(void);
|
|||
|
||||
/* make oss fragment size to fit this much video frames */
|
||||
extern int sndout_oss_frag_frames;
|
||||
extern int sndout_oss_can_restart;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue