192122bd62
ioctl(2) handling. This allows doing the pps_event() work in the polling routine, instead of using a taskqueue task to do that work. Also, add PNPINFO, and switch to using make_dev_s() to create the cdev. Using a spin mutex and calling pps_event() from the polling function works around the situation which requires more than 2 sets of timecounter timehands in a single-core system to get reliable PPS capture. That problem would happen when a single-core system is idle in cpu_idle() then gets woken up with an event timer event which was scheduled to handle a hardclock tick. That processing path would end up calling tc_windup 3 or 4 times between when the tc polling function was called and when the taskqueue task would eventually run, and with only two sets of timehands, the th_generation count would always be too old to allow the captured PPS data to be used. |
||
---|---|---|
.. | ||
am335x_dmtimer.c | ||
am335x_dmtpps.c | ||
am335x_dmtreg.h | ||
am335x_ecap.c | ||
am335x_ehrpwm.c | ||
am335x_gpio.c | ||
am335x_lcd_syscons.c | ||
am335x_lcd.c | ||
am335x_lcd.h | ||
am335x_musb.c | ||
am335x_pmic.c | ||
am335x_prcm.c | ||
am335x_pwm.h | ||
am335x_pwmss.c | ||
am335x_reg.h | ||
am335x_rtc.c | ||
am335x_rtcreg.h | ||
am335x_rtcvar.h | ||
am335x_scm_padconf.c | ||
am335x_scm_padconf.h | ||
am335x_scm.c | ||
am335x_scm.h | ||
am335x_usbss.c | ||
files.am335x | ||
std.am335x | ||
tda19988.c | ||
tps65217x.h |