Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/atkbdc/psm.c
Show All 12 Lines | |||||
* Values are taken to match HP Pavilion dv6 clickpad drawings | * Values are taken to match HP Pavilion dv6 clickpad drawings | ||||
* with thin middle softbutton placed on separator | * with thin middle softbutton placed on separator | ||||
*/ | */ | ||||
/* hw.psm.synaptics.softbuttons_y */ | /* hw.psm.synaptics.softbuttons_y */ | ||||
sc->syninfo.softbuttons_y = sc->synhw.topButtonPad ? -1700 : 1700; | sc->syninfo.softbuttons_y = sc->synhw.topButtonPad ? -1700 : 1700; | ||||
SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | ||||
SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | ||||
"softbuttons_y", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, | "softbuttons_y", | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY | CTLFLAG_NEEDGIANT, | |||||
sc, SYNAPTICS_SYSCTL_SOFTBUTTONS_Y, | sc, SYNAPTICS_SYSCTL_SOFTBUTTONS_Y, | ||||
synaptics_sysctl, "I", | synaptics_sysctl, "I", | ||||
"Vertical size of softbuttons area"); | "Vertical size of softbuttons area"); | ||||
/* hw.psm.synaptics.softbutton2_x */ | /* hw.psm.synaptics.softbutton2_x */ | ||||
sc->syninfo.softbutton2_x = 3100; | sc->syninfo.softbutton2_x = 3100; | ||||
SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | ||||
SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | ||||
"softbutton2_x", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, | "softbutton2_x", | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY | CTLFLAG_NEEDGIANT, | |||||
sc, SYNAPTICS_SYSCTL_SOFTBUTTON2_X, | sc, SYNAPTICS_SYSCTL_SOFTBUTTON2_X, | ||||
synaptics_sysctl, "I", | synaptics_sysctl, "I", | ||||
"Horisontal position of 2-nd softbutton left edge (0-disable)"); | "Horisontal position of 2-nd softbutton left edge (0-disable)"); | ||||
/* hw.psm.synaptics.softbutton3_x */ | /* hw.psm.synaptics.softbutton3_x */ | ||||
sc->syninfo.softbutton3_x = 3900; | sc->syninfo.softbutton3_x = 3900; | ||||
SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | ||||
SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | ||||
"softbutton3_x", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, | "softbutton3_x", | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY | CTLFLAG_NEEDGIANT, | |||||
sc, SYNAPTICS_SYSCTL_SOFTBUTTON3_X, | sc, SYNAPTICS_SYSCTL_SOFTBUTTON3_X, | ||||
synaptics_sysctl, "I", | synaptics_sysctl, "I", | ||||
"Horisontal position of 3-rd softbutton left edge (0-disable)"); | "Horisontal position of 3-rd softbutton left edge (0-disable)"); | ||||
} | } | ||||
static void | static void | ||||
synaptics_sysctl_create_tree(struct psm_softc *sc, const char *name, | synaptics_sysctl_create_tree(struct psm_softc *sc, const char *name, | ||||
const char *descr) | const char *descr) | ||||
Show All 24 Lines | |||||
"two_finger_scroll", CTLFLAG_RW|CTLFLAG_ANYBODY, | "two_finger_scroll", CTLFLAG_RW|CTLFLAG_ANYBODY, | ||||
&sc->syninfo.two_finger_scroll, 0, | &sc->syninfo.two_finger_scroll, 0, | ||||
"Enable two finger scrolling"); | "Enable two finger scrolling"); | ||||
/* hw.psm.synaptics.min_pressure. */ | /* hw.psm.synaptics.min_pressure. */ | ||||
sc->syninfo.min_pressure = 32; | sc->syninfo.min_pressure = 32; | ||||
SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | ||||
SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | ||||
"min_pressure", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, | "min_pressure", | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY | CTLFLAG_NEEDGIANT, | |||||
sc, SYNAPTICS_SYSCTL_MIN_PRESSURE, | sc, SYNAPTICS_SYSCTL_MIN_PRESSURE, | ||||
synaptics_sysctl, "I", | synaptics_sysctl, "I", | ||||
"Minimum pressure required to start an action"); | "Minimum pressure required to start an action"); | ||||
/* hw.psm.synaptics.max_pressure. */ | /* hw.psm.synaptics.max_pressure. */ | ||||
sc->syninfo.max_pressure = 220; | sc->syninfo.max_pressure = 220; | ||||
SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | ||||
SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | ||||
"max_pressure", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, | "max_pressure", | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY | CTLFLAG_NEEDGIANT, | |||||
sc, SYNAPTICS_SYSCTL_MAX_PRESSURE, | sc, SYNAPTICS_SYSCTL_MAX_PRESSURE, | ||||
synaptics_sysctl, "I", | synaptics_sysctl, "I", | ||||
"Maximum pressure to detect palm"); | "Maximum pressure to detect palm"); | ||||
/* hw.psm.synaptics.max_width. */ | /* hw.psm.synaptics.max_width. */ | ||||
sc->syninfo.max_width = 10; | sc->syninfo.max_width = 10; | ||||
SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | ||||
SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | ||||
"max_width", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, | "max_width", | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY | CTLFLAG_NEEDGIANT, | |||||
sc, SYNAPTICS_SYSCTL_MAX_WIDTH, | sc, SYNAPTICS_SYSCTL_MAX_WIDTH, | ||||
synaptics_sysctl, "I", | synaptics_sysctl, "I", | ||||
"Maximum finger width to detect palm"); | "Maximum finger width to detect palm"); | ||||
/* hw.psm.synaptics.top_margin. */ | /* hw.psm.synaptics.top_margin. */ | ||||
sc->syninfo.margin_top = 200; | sc->syninfo.margin_top = 200; | ||||
SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | ||||
SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | ||||
"margin_top", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, | "margin_top", | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY | CTLFLAG_NEEDGIANT, | |||||
sc, SYNAPTICS_SYSCTL_MARGIN_TOP, | sc, SYNAPTICS_SYSCTL_MARGIN_TOP, | ||||
synaptics_sysctl, "I", | synaptics_sysctl, "I", | ||||
"Top margin"); | "Top margin"); | ||||
/* hw.psm.synaptics.right_margin. */ | /* hw.psm.synaptics.right_margin. */ | ||||
sc->syninfo.margin_right = 200; | sc->syninfo.margin_right = 200; | ||||
SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | ||||
SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | ||||
"margin_right", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, | "margin_right", | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY | CTLFLAG_NEEDGIANT, | |||||
sc, SYNAPTICS_SYSCTL_MARGIN_RIGHT, | sc, SYNAPTICS_SYSCTL_MARGIN_RIGHT, | ||||
synaptics_sysctl, "I", | synaptics_sysctl, "I", | ||||
"Right margin"); | "Right margin"); | ||||
/* hw.psm.synaptics.bottom_margin. */ | /* hw.psm.synaptics.bottom_margin. */ | ||||
sc->syninfo.margin_bottom = 200; | sc->syninfo.margin_bottom = 200; | ||||
SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | ||||
SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | ||||
"margin_bottom", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, | "margin_bottom", | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY | CTLFLAG_NEEDGIANT, | |||||
sc, SYNAPTICS_SYSCTL_MARGIN_BOTTOM, | sc, SYNAPTICS_SYSCTL_MARGIN_BOTTOM, | ||||
synaptics_sysctl, "I", | synaptics_sysctl, "I", | ||||
"Bottom margin"); | "Bottom margin"); | ||||
/* hw.psm.synaptics.left_margin. */ | /* hw.psm.synaptics.left_margin. */ | ||||
sc->syninfo.margin_left = 200; | sc->syninfo.margin_left = 200; | ||||
SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | ||||
SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | ||||
"margin_left", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, | "margin_left", | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY | CTLFLAG_NEEDGIANT, | |||||
sc, SYNAPTICS_SYSCTL_MARGIN_LEFT, | sc, SYNAPTICS_SYSCTL_MARGIN_LEFT, | ||||
synaptics_sysctl, "I", | synaptics_sysctl, "I", | ||||
"Left margin"); | "Left margin"); | ||||
/* hw.psm.synaptics.na_top. */ | /* hw.psm.synaptics.na_top. */ | ||||
sc->syninfo.na_top = 1783; | sc->syninfo.na_top = 1783; | ||||
SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | ||||
SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | ||||
"na_top", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, | "na_top", | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY | CTLFLAG_NEEDGIANT, | |||||
sc, SYNAPTICS_SYSCTL_NA_TOP, | sc, SYNAPTICS_SYSCTL_NA_TOP, | ||||
synaptics_sysctl, "I", | synaptics_sysctl, "I", | ||||
"Top noisy area, where weight_previous_na is used instead " | "Top noisy area, where weight_previous_na is used instead " | ||||
"of weight_previous"); | "of weight_previous"); | ||||
/* hw.psm.synaptics.na_right. */ | /* hw.psm.synaptics.na_right. */ | ||||
sc->syninfo.na_right = 563; | sc->syninfo.na_right = 563; | ||||
SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | ||||
SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | ||||
"na_right", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, | "na_right", | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY | CTLFLAG_NEEDGIANT, | |||||
sc, SYNAPTICS_SYSCTL_NA_RIGHT, | sc, SYNAPTICS_SYSCTL_NA_RIGHT, | ||||
synaptics_sysctl, "I", | synaptics_sysctl, "I", | ||||
"Right noisy area, where weight_previous_na is used instead " | "Right noisy area, where weight_previous_na is used instead " | ||||
"of weight_previous"); | "of weight_previous"); | ||||
/* hw.psm.synaptics.na_bottom. */ | /* hw.psm.synaptics.na_bottom. */ | ||||
sc->syninfo.na_bottom = 1408; | sc->syninfo.na_bottom = 1408; | ||||
SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | ||||
SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | ||||
"na_bottom", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, | "na_bottom", | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY | CTLFLAG_NEEDGIANT, | |||||
sc, SYNAPTICS_SYSCTL_NA_BOTTOM, | sc, SYNAPTICS_SYSCTL_NA_BOTTOM, | ||||
synaptics_sysctl, "I", | synaptics_sysctl, "I", | ||||
"Bottom noisy area, where weight_previous_na is used instead " | "Bottom noisy area, where weight_previous_na is used instead " | ||||
"of weight_previous"); | "of weight_previous"); | ||||
/* hw.psm.synaptics.na_left. */ | /* hw.psm.synaptics.na_left. */ | ||||
sc->syninfo.na_left = 1600; | sc->syninfo.na_left = 1600; | ||||
SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | ||||
SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | ||||
"na_left", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, | "na_left", | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY | CTLFLAG_NEEDGIANT, | |||||
sc, SYNAPTICS_SYSCTL_NA_LEFT, | sc, SYNAPTICS_SYSCTL_NA_LEFT, | ||||
synaptics_sysctl, "I", | synaptics_sysctl, "I", | ||||
"Left noisy area, where weight_previous_na is used instead " | "Left noisy area, where weight_previous_na is used instead " | ||||
"of weight_previous"); | "of weight_previous"); | ||||
/* hw.psm.synaptics.window_min. */ | /* hw.psm.synaptics.window_min. */ | ||||
sc->syninfo.window_min = 4; | sc->syninfo.window_min = 4; | ||||
SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | ||||
SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | ||||
"window_min", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, | "window_min", | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY | CTLFLAG_NEEDGIANT, | |||||
sc, SYNAPTICS_SYSCTL_WINDOW_MIN, | sc, SYNAPTICS_SYSCTL_WINDOW_MIN, | ||||
synaptics_sysctl, "I", | synaptics_sysctl, "I", | ||||
"Minimum window size to start an action"); | "Minimum window size to start an action"); | ||||
/* hw.psm.synaptics.window_max. */ | /* hw.psm.synaptics.window_max. */ | ||||
sc->syninfo.window_max = 10; | sc->syninfo.window_max = 10; | ||||
SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | ||||
SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | ||||
"window_max", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, | "window_max", | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY | CTLFLAG_NEEDGIANT, | |||||
sc, SYNAPTICS_SYSCTL_WINDOW_MAX, | sc, SYNAPTICS_SYSCTL_WINDOW_MAX, | ||||
synaptics_sysctl, "I", | synaptics_sysctl, "I", | ||||
"Maximum window size"); | "Maximum window size"); | ||||
/* hw.psm.synaptics.multiplicator. */ | /* hw.psm.synaptics.multiplicator. */ | ||||
sc->syninfo.multiplicator = 10000; | sc->syninfo.multiplicator = 10000; | ||||
SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | ||||
SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | ||||
"multiplicator", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, | "multiplicator", | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY | CTLFLAG_NEEDGIANT, | |||||
sc, SYNAPTICS_SYSCTL_MULTIPLICATOR, | sc, SYNAPTICS_SYSCTL_MULTIPLICATOR, | ||||
synaptics_sysctl, "I", | synaptics_sysctl, "I", | ||||
"Multiplicator to increase precision in averages and divisions"); | "Multiplicator to increase precision in averages and divisions"); | ||||
/* hw.psm.synaptics.weight_current. */ | /* hw.psm.synaptics.weight_current. */ | ||||
sc->syninfo.weight_current = 3; | sc->syninfo.weight_current = 3; | ||||
SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | ||||
SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | ||||
"weight_current", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, | "weight_current", | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY | CTLFLAG_NEEDGIANT, | |||||
sc, SYNAPTICS_SYSCTL_WEIGHT_CURRENT, | sc, SYNAPTICS_SYSCTL_WEIGHT_CURRENT, | ||||
synaptics_sysctl, "I", | synaptics_sysctl, "I", | ||||
"Weight of the current movement in the new average"); | "Weight of the current movement in the new average"); | ||||
/* hw.psm.synaptics.weight_previous. */ | /* hw.psm.synaptics.weight_previous. */ | ||||
sc->syninfo.weight_previous = 6; | sc->syninfo.weight_previous = 6; | ||||
SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | ||||
SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | ||||
"weight_previous", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, | "weight_previous", | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY | CTLFLAG_NEEDGIANT, | |||||
sc, SYNAPTICS_SYSCTL_WEIGHT_PREVIOUS, | sc, SYNAPTICS_SYSCTL_WEIGHT_PREVIOUS, | ||||
synaptics_sysctl, "I", | synaptics_sysctl, "I", | ||||
"Weight of the previous average"); | "Weight of the previous average"); | ||||
/* hw.psm.synaptics.weight_previous_na. */ | /* hw.psm.synaptics.weight_previous_na. */ | ||||
sc->syninfo.weight_previous_na = 20; | sc->syninfo.weight_previous_na = 20; | ||||
SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | ||||
SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | ||||
"weight_previous_na", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, | "weight_previous_na", | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY | CTLFLAG_NEEDGIANT, | |||||
sc, SYNAPTICS_SYSCTL_WEIGHT_PREVIOUS_NA, | sc, SYNAPTICS_SYSCTL_WEIGHT_PREVIOUS_NA, | ||||
synaptics_sysctl, "I", | synaptics_sysctl, "I", | ||||
"Weight of the previous average (inside the noisy area)"); | "Weight of the previous average (inside the noisy area)"); | ||||
/* hw.psm.synaptics.weight_len_squared. */ | /* hw.psm.synaptics.weight_len_squared. */ | ||||
sc->syninfo.weight_len_squared = 2000; | sc->syninfo.weight_len_squared = 2000; | ||||
SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | ||||
SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | ||||
"weight_len_squared", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, | "weight_len_squared", | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY | CTLFLAG_NEEDGIANT, | |||||
sc, SYNAPTICS_SYSCTL_WEIGHT_LEN_SQUARED, | sc, SYNAPTICS_SYSCTL_WEIGHT_LEN_SQUARED, | ||||
synaptics_sysctl, "I", | synaptics_sysctl, "I", | ||||
"Length (squared) of segments where weight_previous " | "Length (squared) of segments where weight_previous " | ||||
"starts to decrease"); | "starts to decrease"); | ||||
/* hw.psm.synaptics.div_min. */ | /* hw.psm.synaptics.div_min. */ | ||||
sc->syninfo.div_min = 9; | sc->syninfo.div_min = 9; | ||||
SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | ||||
SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | ||||
"div_min", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, | "div_min", | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY | CTLFLAG_NEEDGIANT, | |||||
sc, SYNAPTICS_SYSCTL_DIV_MIN, | sc, SYNAPTICS_SYSCTL_DIV_MIN, | ||||
synaptics_sysctl, "I", | synaptics_sysctl, "I", | ||||
"Divisor for fast movements"); | "Divisor for fast movements"); | ||||
/* hw.psm.synaptics.div_max. */ | /* hw.psm.synaptics.div_max. */ | ||||
sc->syninfo.div_max = 17; | sc->syninfo.div_max = 17; | ||||
SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | ||||
SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | ||||
"div_max", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, | "div_max", | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY | CTLFLAG_NEEDGIANT, | |||||
sc, SYNAPTICS_SYSCTL_DIV_MAX, | sc, SYNAPTICS_SYSCTL_DIV_MAX, | ||||
synaptics_sysctl, "I", | synaptics_sysctl, "I", | ||||
"Divisor for slow movements"); | "Divisor for slow movements"); | ||||
/* hw.psm.synaptics.div_max_na. */ | /* hw.psm.synaptics.div_max_na. */ | ||||
sc->syninfo.div_max_na = 30; | sc->syninfo.div_max_na = 30; | ||||
SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | ||||
SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | ||||
"div_max_na", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, | "div_max_na", | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY | CTLFLAG_NEEDGIANT, | |||||
sc, SYNAPTICS_SYSCTL_DIV_MAX_NA, | sc, SYNAPTICS_SYSCTL_DIV_MAX_NA, | ||||
synaptics_sysctl, "I", | synaptics_sysctl, "I", | ||||
"Divisor with slow movements (inside the noisy area)"); | "Divisor with slow movements (inside the noisy area)"); | ||||
/* hw.psm.synaptics.div_len. */ | /* hw.psm.synaptics.div_len. */ | ||||
sc->syninfo.div_len = 100; | sc->syninfo.div_len = 100; | ||||
SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | ||||
SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | ||||
"div_len", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, | "div_len", | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY | CTLFLAG_NEEDGIANT, | |||||
sc, SYNAPTICS_SYSCTL_DIV_LEN, | sc, SYNAPTICS_SYSCTL_DIV_LEN, | ||||
synaptics_sysctl, "I", | synaptics_sysctl, "I", | ||||
"Length of segments where div_max starts to decrease"); | "Length of segments where div_max starts to decrease"); | ||||
/* hw.psm.synaptics.tap_max_delta. */ | /* hw.psm.synaptics.tap_max_delta. */ | ||||
sc->syninfo.tap_max_delta = 80; | sc->syninfo.tap_max_delta = 80; | ||||
SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | ||||
SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | ||||
"tap_max_delta", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, | "tap_max_delta", | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY | CTLFLAG_NEEDGIANT, | |||||
sc, SYNAPTICS_SYSCTL_TAP_MAX_DELTA, | sc, SYNAPTICS_SYSCTL_TAP_MAX_DELTA, | ||||
synaptics_sysctl, "I", | synaptics_sysctl, "I", | ||||
"Length of segments above which a tap is ignored"); | "Length of segments above which a tap is ignored"); | ||||
/* hw.psm.synaptics.tap_min_queue. */ | /* hw.psm.synaptics.tap_min_queue. */ | ||||
sc->syninfo.tap_min_queue = 2; | sc->syninfo.tap_min_queue = 2; | ||||
SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | ||||
SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | ||||
"tap_min_queue", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, | "tap_min_queue", | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY | CTLFLAG_NEEDGIANT, | |||||
sc, SYNAPTICS_SYSCTL_TAP_MIN_QUEUE, | sc, SYNAPTICS_SYSCTL_TAP_MIN_QUEUE, | ||||
synaptics_sysctl, "I", | synaptics_sysctl, "I", | ||||
"Number of packets required to consider a tap"); | "Number of packets required to consider a tap"); | ||||
/* hw.psm.synaptics.taphold_timeout. */ | /* hw.psm.synaptics.taphold_timeout. */ | ||||
sc->gesture.in_taphold = 0; | sc->gesture.in_taphold = 0; | ||||
sc->syninfo.taphold_timeout = tap_timeout; | sc->syninfo.taphold_timeout = tap_timeout; | ||||
SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | ||||
SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | ||||
"taphold_timeout", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, | "taphold_timeout", | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY | CTLFLAG_NEEDGIANT, | |||||
sc, SYNAPTICS_SYSCTL_TAPHOLD_TIMEOUT, | sc, SYNAPTICS_SYSCTL_TAPHOLD_TIMEOUT, | ||||
synaptics_sysctl, "I", | synaptics_sysctl, "I", | ||||
"Maximum elapsed time between two taps to consider a tap-hold " | "Maximum elapsed time between two taps to consider a tap-hold " | ||||
"action"); | "action"); | ||||
/* hw.psm.synaptics.vscroll_hor_area. */ | /* hw.psm.synaptics.vscroll_hor_area. */ | ||||
sc->syninfo.vscroll_hor_area = 0; /* 1300 */ | sc->syninfo.vscroll_hor_area = 0; /* 1300 */ | ||||
SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | ||||
SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | ||||
"vscroll_hor_area", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, | "vscroll_hor_area", | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY | CTLFLAG_NEEDGIANT, | |||||
sc, SYNAPTICS_SYSCTL_VSCROLL_HOR_AREA, | sc, SYNAPTICS_SYSCTL_VSCROLL_HOR_AREA, | ||||
synaptics_sysctl, "I", | synaptics_sysctl, "I", | ||||
"Area reserved for horizontal virtual scrolling"); | "Area reserved for horizontal virtual scrolling"); | ||||
/* hw.psm.synaptics.vscroll_ver_area. */ | /* hw.psm.synaptics.vscroll_ver_area. */ | ||||
sc->syninfo.vscroll_ver_area = -400 - sc->syninfo.margin_right; | sc->syninfo.vscroll_ver_area = -400 - sc->syninfo.margin_right; | ||||
SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | ||||
SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | ||||
"vscroll_ver_area", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, | "vscroll_ver_area", | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY | CTLFLAG_NEEDGIANT, | |||||
sc, SYNAPTICS_SYSCTL_VSCROLL_VER_AREA, | sc, SYNAPTICS_SYSCTL_VSCROLL_VER_AREA, | ||||
synaptics_sysctl, "I", | synaptics_sysctl, "I", | ||||
"Area reserved for vertical virtual scrolling"); | "Area reserved for vertical virtual scrolling"); | ||||
/* hw.psm.synaptics.vscroll_min_delta. */ | /* hw.psm.synaptics.vscroll_min_delta. */ | ||||
sc->syninfo.vscroll_min_delta = 50; | sc->syninfo.vscroll_min_delta = 50; | ||||
SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | ||||
SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | ||||
"vscroll_min_delta", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, | "vscroll_min_delta", | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY | CTLFLAG_NEEDGIANT, | |||||
sc, SYNAPTICS_SYSCTL_VSCROLL_MIN_DELTA, | sc, SYNAPTICS_SYSCTL_VSCROLL_MIN_DELTA, | ||||
synaptics_sysctl, "I", | synaptics_sysctl, "I", | ||||
"Minimum movement to consider virtual scrolling"); | "Minimum movement to consider virtual scrolling"); | ||||
/* hw.psm.synaptics.vscroll_div_min. */ | /* hw.psm.synaptics.vscroll_div_min. */ | ||||
sc->syninfo.vscroll_div_min = 100; | sc->syninfo.vscroll_div_min = 100; | ||||
SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | ||||
SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | ||||
"vscroll_div_min", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, | "vscroll_div_min", | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY | CTLFLAG_NEEDGIANT, | |||||
sc, SYNAPTICS_SYSCTL_VSCROLL_DIV_MIN, | sc, SYNAPTICS_SYSCTL_VSCROLL_DIV_MIN, | ||||
synaptics_sysctl, "I", | synaptics_sysctl, "I", | ||||
"Divisor for fast scrolling"); | "Divisor for fast scrolling"); | ||||
/* hw.psm.synaptics.vscroll_div_min. */ | /* hw.psm.synaptics.vscroll_div_min. */ | ||||
sc->syninfo.vscroll_div_max = 150; | sc->syninfo.vscroll_div_max = 150; | ||||
SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | ||||
SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | ||||
"vscroll_div_max", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, | "vscroll_div_max", | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY | CTLFLAG_NEEDGIANT, | |||||
sc, SYNAPTICS_SYSCTL_VSCROLL_DIV_MAX, | sc, SYNAPTICS_SYSCTL_VSCROLL_DIV_MAX, | ||||
synaptics_sysctl, "I", | synaptics_sysctl, "I", | ||||
"Divisor for slow scrolling"); | "Divisor for slow scrolling"); | ||||
/* hw.psm.synaptics.touchpad_off. */ | /* hw.psm.synaptics.touchpad_off. */ | ||||
sc->syninfo.touchpad_off = 0; | sc->syninfo.touchpad_off = 0; | ||||
SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | ||||
SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | ||||
"touchpad_off", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, | "touchpad_off", | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY | CTLFLAG_NEEDGIANT, | |||||
sc, SYNAPTICS_SYSCTL_TOUCHPAD_OFF, | sc, SYNAPTICS_SYSCTL_TOUCHPAD_OFF, | ||||
synaptics_sysctl, "I", | synaptics_sysctl, "I", | ||||
"Turn off touchpad"); | "Turn off touchpad"); | ||||
sc->syninfo.three_finger_drag = 0; | sc->syninfo.three_finger_drag = 0; | ||||
SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | ||||
SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | ||||
"three_finger_drag", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, | "three_finger_drag", | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY | CTLFLAG_NEEDGIANT, | |||||
sc, SYNAPTICS_SYSCTL_THREE_FINGER_DRAG, | sc, SYNAPTICS_SYSCTL_THREE_FINGER_DRAG, | ||||
synaptics_sysctl, "I", | synaptics_sysctl, "I", | ||||
"Enable dragging with three fingers"); | "Enable dragging with three fingers"); | ||||
/* hw.psm.synaptics.natural_scroll. */ | /* hw.psm.synaptics.natural_scroll. */ | ||||
sc->syninfo.natural_scroll = 0; | sc->syninfo.natural_scroll = 0; | ||||
SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | SYSCTL_ADD_PROC(&sc->syninfo.sysctl_ctx, | ||||
SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(sc->syninfo.sysctl_tree), OID_AUTO, | ||||
"natural_scroll", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, | "natural_scroll", | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY | CTLFLAG_NEEDGIANT, | |||||
sc, SYNAPTICS_SYSCTL_NATURAL_SCROLL, | sc, SYNAPTICS_SYSCTL_NATURAL_SCROLL, | ||||
synaptics_sysctl, "I", | synaptics_sysctl, "I", | ||||
"Enable natural scrolling"); | "Enable natural scrolling"); | ||||
sc->syninfo.softbuttons_y = 0; | sc->syninfo.softbuttons_y = 0; | ||||
sc->syninfo.softbutton2_x = 0; | sc->syninfo.softbutton2_x = 0; | ||||
sc->syninfo.softbutton3_x = 0; | sc->syninfo.softbutton3_x = 0; | ||||
Show All 24 Lines | |||||
sc->tpinfo.sysctl_tree = SYSCTL_ADD_NODE(&sc->tpinfo.sysctl_ctx, | sc->tpinfo.sysctl_tree = SYSCTL_ADD_NODE(&sc->tpinfo.sysctl_ctx, | ||||
SYSCTL_STATIC_CHILDREN(_hw_psm), OID_AUTO, "trackpoint", CTLFLAG_RD, | SYSCTL_STATIC_CHILDREN(_hw_psm), OID_AUTO, "trackpoint", CTLFLAG_RD, | ||||
0, "IBM/Lenovo TrackPoint"); | 0, "IBM/Lenovo TrackPoint"); | ||||
/* hw.psm.trackpoint.sensitivity */ | /* hw.psm.trackpoint.sensitivity */ | ||||
sc->tpinfo.sensitivity = 0x80; | sc->tpinfo.sensitivity = 0x80; | ||||
SYSCTL_ADD_PROC(&sc->tpinfo.sysctl_ctx, | SYSCTL_ADD_PROC(&sc->tpinfo.sysctl_ctx, | ||||
SYSCTL_CHILDREN(sc->tpinfo.sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(sc->tpinfo.sysctl_tree), OID_AUTO, | ||||
"sensitivity", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, | "sensitivity", | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY | CTLFLAG_NEEDGIANT, | |||||
sc, TRACKPOINT_SYSCTL_SENSITIVITY, | sc, TRACKPOINT_SYSCTL_SENSITIVITY, | ||||
trackpoint_sysctl, "I", | trackpoint_sysctl, "I", | ||||
"Sensitivity"); | "Sensitivity"); | ||||
/* hw.psm.trackpoint.negative_inertia */ | /* hw.psm.trackpoint.negative_inertia */ | ||||
sc->tpinfo.inertia = 0x06; | sc->tpinfo.inertia = 0x06; | ||||
SYSCTL_ADD_PROC(&sc->tpinfo.sysctl_ctx, | SYSCTL_ADD_PROC(&sc->tpinfo.sysctl_ctx, | ||||
SYSCTL_CHILDREN(sc->tpinfo.sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(sc->tpinfo.sysctl_tree), OID_AUTO, | ||||
"negative_inertia", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, | "negative_inertia", | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY | CTLFLAG_NEEDGIANT, | |||||
sc, TRACKPOINT_SYSCTL_NEGATIVE_INERTIA, | sc, TRACKPOINT_SYSCTL_NEGATIVE_INERTIA, | ||||
trackpoint_sysctl, "I", | trackpoint_sysctl, "I", | ||||
"Negative inertia factor"); | "Negative inertia factor"); | ||||
/* hw.psm.trackpoint.upper_plateau */ | /* hw.psm.trackpoint.upper_plateau */ | ||||
sc->tpinfo.uplateau = 0x61; | sc->tpinfo.uplateau = 0x61; | ||||
SYSCTL_ADD_PROC(&sc->tpinfo.sysctl_ctx, | SYSCTL_ADD_PROC(&sc->tpinfo.sysctl_ctx, | ||||
SYSCTL_CHILDREN(sc->tpinfo.sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(sc->tpinfo.sysctl_tree), OID_AUTO, | ||||
"upper_plateau", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, | "upper_plateau", | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY | CTLFLAG_NEEDGIANT, | |||||
sc, TRACKPOINT_SYSCTL_UPPER_PLATEAU, | sc, TRACKPOINT_SYSCTL_UPPER_PLATEAU, | ||||
trackpoint_sysctl, "I", | trackpoint_sysctl, "I", | ||||
"Transfer function upper plateau speed"); | "Transfer function upper plateau speed"); | ||||
/* hw.psm.trackpoint.backup_range */ | /* hw.psm.trackpoint.backup_range */ | ||||
sc->tpinfo.reach = 0x0a; | sc->tpinfo.reach = 0x0a; | ||||
SYSCTL_ADD_PROC(&sc->tpinfo.sysctl_ctx, | SYSCTL_ADD_PROC(&sc->tpinfo.sysctl_ctx, | ||||
SYSCTL_CHILDREN(sc->tpinfo.sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(sc->tpinfo.sysctl_tree), OID_AUTO, | ||||
"backup_range", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, | "backup_range", | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY | CTLFLAG_NEEDGIANT, | |||||
sc, TRACKPOINT_SYSCTL_BACKUP_RANGE, | sc, TRACKPOINT_SYSCTL_BACKUP_RANGE, | ||||
trackpoint_sysctl, "I", | trackpoint_sysctl, "I", | ||||
"Backup range"); | "Backup range"); | ||||
/* hw.psm.trackpoint.drag_hysteresis */ | /* hw.psm.trackpoint.drag_hysteresis */ | ||||
sc->tpinfo.draghys = 0xff; | sc->tpinfo.draghys = 0xff; | ||||
SYSCTL_ADD_PROC(&sc->tpinfo.sysctl_ctx, | SYSCTL_ADD_PROC(&sc->tpinfo.sysctl_ctx, | ||||
SYSCTL_CHILDREN(sc->tpinfo.sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(sc->tpinfo.sysctl_tree), OID_AUTO, | ||||
"drag_hysteresis", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, | "drag_hysteresis", | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY | CTLFLAG_NEEDGIANT, | |||||
sc, TRACKPOINT_SYSCTL_DRAG_HYSTERESIS, | sc, TRACKPOINT_SYSCTL_DRAG_HYSTERESIS, | ||||
trackpoint_sysctl, "I", | trackpoint_sysctl, "I", | ||||
"Drag hysteresis"); | "Drag hysteresis"); | ||||
/* hw.psm.trackpoint.minimum_drag */ | /* hw.psm.trackpoint.minimum_drag */ | ||||
sc->tpinfo.mindrag = 0x14; | sc->tpinfo.mindrag = 0x14; | ||||
SYSCTL_ADD_PROC(&sc->tpinfo.sysctl_ctx, | SYSCTL_ADD_PROC(&sc->tpinfo.sysctl_ctx, | ||||
SYSCTL_CHILDREN(sc->tpinfo.sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(sc->tpinfo.sysctl_tree), OID_AUTO, | ||||
"minimum_drag", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, | "minimum_drag", | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY | CTLFLAG_NEEDGIANT, | |||||
sc, TRACKPOINT_SYSCTL_MINIMUM_DRAG, | sc, TRACKPOINT_SYSCTL_MINIMUM_DRAG, | ||||
trackpoint_sysctl, "I", | trackpoint_sysctl, "I", | ||||
"Minimum drag"); | "Minimum drag"); | ||||
/* hw.psm.trackpoint.up_threshold */ | /* hw.psm.trackpoint.up_threshold */ | ||||
sc->tpinfo.upthresh = 0xff; | sc->tpinfo.upthresh = 0xff; | ||||
SYSCTL_ADD_PROC(&sc->tpinfo.sysctl_ctx, | SYSCTL_ADD_PROC(&sc->tpinfo.sysctl_ctx, | ||||
SYSCTL_CHILDREN(sc->tpinfo.sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(sc->tpinfo.sysctl_tree), OID_AUTO, | ||||
"up_threshold", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, | "up_threshold", | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY | CTLFLAG_NEEDGIANT, | |||||
sc, TRACKPOINT_SYSCTL_UP_THRESHOLD, | sc, TRACKPOINT_SYSCTL_UP_THRESHOLD, | ||||
trackpoint_sysctl, "I", | trackpoint_sysctl, "I", | ||||
"Up threshold for release"); | "Up threshold for release"); | ||||
/* hw.psm.trackpoint.threshold */ | /* hw.psm.trackpoint.threshold */ | ||||
sc->tpinfo.threshold = 0x08; | sc->tpinfo.threshold = 0x08; | ||||
SYSCTL_ADD_PROC(&sc->tpinfo.sysctl_ctx, | SYSCTL_ADD_PROC(&sc->tpinfo.sysctl_ctx, | ||||
SYSCTL_CHILDREN(sc->tpinfo.sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(sc->tpinfo.sysctl_tree), OID_AUTO, | ||||
"threshold", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, | "threshold", | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY | CTLFLAG_NEEDGIANT, | |||||
sc, TRACKPOINT_SYSCTL_THRESHOLD, | sc, TRACKPOINT_SYSCTL_THRESHOLD, | ||||
trackpoint_sysctl, "I", | trackpoint_sysctl, "I", | ||||
"Threshold"); | "Threshold"); | ||||
/* hw.psm.trackpoint.jenks_curvature */ | /* hw.psm.trackpoint.jenks_curvature */ | ||||
sc->tpinfo.jenks = 0x87; | sc->tpinfo.jenks = 0x87; | ||||
SYSCTL_ADD_PROC(&sc->tpinfo.sysctl_ctx, | SYSCTL_ADD_PROC(&sc->tpinfo.sysctl_ctx, | ||||
SYSCTL_CHILDREN(sc->tpinfo.sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(sc->tpinfo.sysctl_tree), OID_AUTO, | ||||
"jenks_curvature", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, | "jenks_curvature", | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY | CTLFLAG_NEEDGIANT, | |||||
sc, TRACKPOINT_SYSCTL_JENKS_CURVATURE, | sc, TRACKPOINT_SYSCTL_JENKS_CURVATURE, | ||||
trackpoint_sysctl, "I", | trackpoint_sysctl, "I", | ||||
"Jenks curvature"); | "Jenks curvature"); | ||||
/* hw.psm.trackpoint.z_time */ | /* hw.psm.trackpoint.z_time */ | ||||
sc->tpinfo.ztime = 0x26; | sc->tpinfo.ztime = 0x26; | ||||
SYSCTL_ADD_PROC(&sc->tpinfo.sysctl_ctx, | SYSCTL_ADD_PROC(&sc->tpinfo.sysctl_ctx, | ||||
SYSCTL_CHILDREN(sc->tpinfo.sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(sc->tpinfo.sysctl_tree), OID_AUTO, | ||||
"z_time", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, | "z_time", | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY | CTLFLAG_NEEDGIANT, | |||||
sc, TRACKPOINT_SYSCTL_Z_TIME, | sc, TRACKPOINT_SYSCTL_Z_TIME, | ||||
trackpoint_sysctl, "I", | trackpoint_sysctl, "I", | ||||
"Z time constant"); | "Z time constant"); | ||||
/* hw.psm.trackpoint.press_to_select */ | /* hw.psm.trackpoint.press_to_select */ | ||||
sc->tpinfo.pts = 0x00; | sc->tpinfo.pts = 0x00; | ||||
SYSCTL_ADD_PROC(&sc->tpinfo.sysctl_ctx, | SYSCTL_ADD_PROC(&sc->tpinfo.sysctl_ctx, | ||||
SYSCTL_CHILDREN(sc->tpinfo.sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(sc->tpinfo.sysctl_tree), OID_AUTO, | ||||
"press_to_select", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, | "press_to_select", | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY | CTLFLAG_NEEDGIANT, | |||||
sc, TRACKPOINT_SYSCTL_PRESS_TO_SELECT, | sc, TRACKPOINT_SYSCTL_PRESS_TO_SELECT, | ||||
trackpoint_sysctl, "I", | trackpoint_sysctl, "I", | ||||
"Press to Select"); | "Press to Select"); | ||||
/* hw.psm.trackpoint.skip_backups */ | /* hw.psm.trackpoint.skip_backups */ | ||||
sc->tpinfo.skipback = 0x00; | sc->tpinfo.skipback = 0x00; | ||||
SYSCTL_ADD_PROC(&sc->tpinfo.sysctl_ctx, | SYSCTL_ADD_PROC(&sc->tpinfo.sysctl_ctx, | ||||
SYSCTL_CHILDREN(sc->tpinfo.sysctl_tree), OID_AUTO, | SYSCTL_CHILDREN(sc->tpinfo.sysctl_tree), OID_AUTO, | ||||
"skip_backups", CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_ANYBODY, | "skip_backups", | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_ANYBODY | CTLFLAG_NEEDGIANT, | |||||
sc, TRACKPOINT_SYSCTL_SKIP_BACKUPS, | sc, TRACKPOINT_SYSCTL_SKIP_BACKUPS, | ||||
trackpoint_sysctl, "I", | trackpoint_sysctl, "I", | ||||
"Skip backups from drags"); | "Skip backups from drags"); | ||||
} | } | ||||
static void | static void | ||||
set_trackpoint_parameters(struct psm_softc *sc) | set_trackpoint_parameters(struct psm_softc *sc) | ||||
{ | { | ||||
Show All 12 Lines |