Page MenuHomeFreeBSD

D43321.id.diff
No OneTemporary

D43321.id.diff

diff --git a/sys/arm/ti/ti_adc.c b/sys/arm/ti/ti_adc.c
--- a/sys/arm/ti/ti_adc.c
+++ b/sys/arm/ti/ti_adc.c
@@ -463,6 +463,8 @@
for (i = sc->sc_coord_readouts + 2 + start; i < sc->sc_coord_readouts + 2 + end; i++)
x += data[i];
x /= (end - start);
+ if (sc->sc_x_inverted)
+ x = 4096 - x;
#ifdef DEBUG_TSC
device_printf(sc->sc_dev, "touchscreen x: %d, y: %d\n", x, y);
@@ -758,6 +760,7 @@
node = ofw_bus_get_node(dev);
+ sc->sc_x_inverted = false;
sc->sc_tsc_wires = 0;
sc->sc_coord_readouts = 1;
sc->sc_x_plate_resistance = 0;
@@ -765,6 +768,8 @@
/* Read "tsc" node properties */
child = ofw_bus_find_child(node, "tsc");
if (child != 0 && OF_hasprop(child, "ti,wires")) {
+ if (OF_hasprop(child, "freebsd,x-inverted"))
+ sc->sc_x_inverted = true;
if ((OF_getencprop(child, "ti,wires", &cell, sizeof(cell))) > 0)
sc->sc_tsc_wires = cell;
if ((OF_getencprop(child, "ti,coordinate-readouts", &cell,
diff --git a/sys/arm/ti/ti_adcvar.h b/sys/arm/ti/ti_adcvar.h
--- a/sys/arm/ti/ti_adcvar.h
+++ b/sys/arm/ti/ti_adcvar.h
@@ -53,6 +53,7 @@
int sc_yn_bit, sc_yn_inp;
uint32_t sc_tsc_enabled;
int sc_pen_down;
+ bool sc_x_inverted;
#ifdef EVDEV_SUPPORT
int sc_x;
int sc_y;

File Metadata

Mime Type
text/plain
Expires
Sun, Apr 12, 10:07 PM (7 h, 3 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31375058
Default Alt Text
D43321.id.diff (1 KB)

Event Timeline