2 * pccard noise interface.
3 * Nate Williams, October 1997.
4 * This file is in the public domain.
9 #include <sys/kernel.h>
10 #include <sys/systm.h>
12 #include <machine/clock.h>
14 #include <pccard/driver.h>
16 #define PCCARD_BEEP_PITCH0 1600
17 #define PCCARD_BEEP_DURATION0 20
18 #define PCCARD_BEEP_PITCH1 1200
19 #define PCCARD_BEEP_DURATION1 40
20 #define PCCARD_BEEP_PITCH2 3200
21 #define PCCARD_BEEP_DURATION2 40
23 static struct callout_handle beeptimeout_ch
24 = CALLOUT_HANDLE_INITIALIZER(&beeptimeout_ch);
26 static enum beepstate allow_beep = BEEP_OFF;
29 * timeout function to keep lots of noise from
30 * happening with insertion/removals.
32 static void enable_beep(void *dummy)
34 /* Should never be needed */
35 untimeout(enable_beep, (void *)NULL, beeptimeout_ch);
40 void pccard_insert_beep(void)
42 if (allow_beep == BEEP_ON) {
43 sysbeep(PCCARD_BEEP_PITCH0, PCCARD_BEEP_DURATION0);
44 allow_beep = BEEP_OFF;
45 beeptimeout_ch = timeout(enable_beep, (void *)NULL, hz / 5);
49 void pccard_remove_beep(void)
51 if (allow_beep == BEEP_ON) {
52 sysbeep(PCCARD_BEEP_PITCH0, PCCARD_BEEP_DURATION0);
53 allow_beep = BEEP_OFF;
54 beeptimeout_ch = timeout(enable_beep, (void *)NULL, hz / 5);
58 void pccard_success_beep(void)
60 if (allow_beep == BEEP_ON) {
61 sysbeep(PCCARD_BEEP_PITCH1, PCCARD_BEEP_DURATION1);
65 void pccard_failure_beep(void)
67 if (allow_beep == BEEP_ON) {
68 sysbeep(PCCARD_BEEP_PITCH2, PCCARD_BEEP_DURATION2);
72 int pccard_beep_select(enum beepstate state)
74 if (state == BEEP_ON || state == BEEP_OFF) {