Lines Matching refs:synhw
254 #define SYNAPTICS_VERSION_GE(synhw, major, minor) \ argument
255 ((synhw).infoMajor > (major) || \
256 ((synhw).infoMajor == (major) && (synhw).infoMinor >= (minor)))
428 synapticshw_t synhw; /* Synaptics hardware information */ member
1149 if ((SYNAPTICS_VERSION_GE(sc->synhw, 7, 5) ||
1700 int y = sc->synhw.minimumYCoord + sc->synhw.maximumYCoord - f->y;
1712 int y = sc->synhw.minimumYCoord + sc->synhw.maximumYCoord - f->y;
1717 if (sc->synhw.capPalmDetect)
1802 { ABS_X, sc->synhw.minimumXCoord,
1803 sc->synhw.maximumXCoord, sc->synhw.infoXupmm },
1804 { ABS_Y, sc->synhw.minimumYCoord,
1805 sc->synhw.maximumYCoord, sc->synhw.infoYupmm },
1812 { ABS_MT_POSITION_X, sc->synhw.minimumXCoord,
1813 sc->synhw.maximumXCoord, sc->synhw.infoXupmm },
1814 { ABS_MT_POSITION_Y, sc->synhw.minimumYCoord,
1815 sc->synhw.maximumYCoord, sc->synhw.infoYupmm },
1828 if (sc->synhw.capAdvancedGestures || sc->synhw.capReportsV)
1830 if (sc->synhw.capReportsV)
1837 if (sc->synhw.capAdvancedGestures)
1839 if (sc->synhw.capClickPad)
1841 if (sc->synhw.capClickPad && sc->synhw.topButtonPad)
1844 evdev_support_nfingers(evdev_a, sc->synhw.capReportsV ? 5 : 3);
1846 if (sc->synhw.capAdvancedGestures || sc->synhw.capReportsV)
1848 if (sc->synhw.capPalmDetect)
1851 if (!sc->synhw.capClickPad) {
1853 if (sc->synhw.capExtended && sc->synhw.capMiddle)
1856 if (sc->synhw.capExtended && sc->synhw.capFourButtons) {
1860 if (sc->synhw.capExtended && (sc->synhw.nExtendedButtons > 0))
1861 for (i = 0; i < sc->synhw.nExtendedButtons; i++)
1865 if (!error && (sc->synhw.capPassthrough || sc->muxport != PSM_NOMUX)) {
1998 if (sc->synhw.infoMajor >= 4 || sc->tphw > 0)
2633 if (sc->synhw.infoMajor >= 4)
2634 *(synapticshw_t *)addr = sc->synhw;
3329 if (sc->synhw.capExtended)
3344 if (sc->synhw.capPassthrough || sc->muxport != PSM_NOMUX) {
3379 if (sc->synhw.capAdvancedGestures)
3390 else if (sc->synhw.capReportsV)
3413 if (sc->synhw.capReportsV && ew_finger_count > 3) {
3436 if (sc->synhw.capExtended && sc->synhw.capFourButtons) {
3441 } else if (sc->synhw.capExtended && sc->synhw.capMiddle &&
3442 !sc->synhw.capClickPad) {
3446 } else if (sc->synhw.capExtended && (sc->synhw.nExtendedButtons > 0)) {
3483 maskedbits = (sc->synhw.nExtendedButtons + 1) >> 1;
3488 if (sc->synhw.capPassthrough) {
3515 if (sc->synhw.capReportsV && nfingers > 1)
3547 if (sc->synhw.capClickPad) {
3549 if (sc->synhw.forcePad) {
3592 if (sc->synhw.capExtended && sc->synhw.capFourButtons) {
3696 if (sc->synhw.capExtended && !sc->synhw.capPassthrough &&
3733 ((sc->synhw.capMultiFinger || sc->synhw.capAdvancedGestures) &&
3734 !sc->synhw.capReportsV && nfingers > 1) ||
3735 (sc->synhw.capReportsV && nfingers > 2) ||
3736 (sc->synhw.capPalmDetect && f->w <= sc->syninfo.max_width) ||
3737 (!sc->synhw.capPalmDetect && f->p <= sc->syninfo.max_pressure) ||
3738 (sc->synhw.capPen && f->flags & PSM_FINGER_IS_PEN))) {
3871 if (sc->synhw.capClickPad && ms->button & MOUSE_BUTTON1DOWN) {
5697 if (arg < 0 || arg > sc->synhw.maximumYCoord)
5703 if (!sc->synhw.capClickPad && arg != 0)
5710 if (arg < 0 || arg > sc->synhw.maximumXCoord)
5740 if (arg < -sc->synhw.maximumXCoord ||
5741 arg > sc->synhw.maximumXCoord)
5746 if (!sc->synhw.capClickPad && arg != 0)
5750 if (arg < -sc->synhw.maximumYCoord ||
5751 arg > sc->synhw.maximumYCoord)
5780 sc->syninfo.softbuttons_y = sc->synhw.topButtonPad ? -1700 : 1700;
5854 if (sc->synhw.verticalScroll || (sc->synhw.capMultiFinger == 0 &&
5855 sc->synhw.capAdvancedGestures == 0))
6207 if (sc->synhw.capClickPad)
6236 if (sc->synhw.capExtended)
6253 if ((sc->synhw.capAdvancedGestures || sc->synhw.capReportsV) &&
6349 synapticshw_t synhw; local
6371 bzero(&synhw, sizeof(synhw));
6372 synhw.infoMinor = status[0];
6373 synhw.infoMajor = status[2] & 0x0f;
6376 printf("Synaptics Touchpad v%d.%d\n", synhw.infoMajor,
6377 synhw.infoMinor);
6379 if (synhw.infoMajor < 4) {
6394 synhw.infoRot180 = (status[0] & 0x80) != 0;
6395 synhw.infoPortrait = (status[0] & 0x40) != 0;
6396 synhw.infoSensor = status[0] & 0x3f;
6397 synhw.infoHardware = (status[1] & 0xfe) >> 1;
6398 synhw.infoNewAbs = (status[2] & 0x80) != 0;
6399 synhw.capPen = (status[2] & 0x40) != 0;
6400 synhw.infoSimplC = (status[2] & 0x20) != 0;
6401 synhw.infoGeometry = status[2] & 0x0f;
6405 printf(" infoRot180: %d\n", synhw.infoRot180);
6406 printf(" infoPortrait: %d\n", synhw.infoPortrait);
6407 printf(" infoSensor: %d\n", synhw.infoSensor);
6408 printf(" infoHardware: %d\n", synhw.infoHardware);
6409 printf(" infoNewAbs: %d\n", synhw.infoNewAbs);
6410 printf(" capPen: %d\n", synhw.capPen);
6411 printf(" infoSimplC: %d\n", synhw.infoSimplC);
6412 printf(" infoGeometry: %d\n", synhw.infoGeometry);
6419 synhw.maximumXCoord = 5472;
6420 synhw.maximumYCoord = 4448;
6421 synhw.minimumXCoord = 1472;
6422 synhw.minimumYCoord = 1408;
6429 if (!SYNAPTICS_VERSION_GE(synhw, 7, 5) && status[1] != 0x47) {
6440 synhw.capExtended = (status[0] & 0x80) != 0;
6441 if (synhw.capExtended) {
6442 synhw.nExtendedQueries = (status[0] & 0x70) >> 4;
6443 synhw.capMiddle = (status[0] & 0x04) != 0;
6444 synhw.capPassthrough = (status[2] & 0x80) != 0;
6445 synhw.capLowPower = (status[2] & 0x40) != 0;
6446 synhw.capMultiFingerReport =
6448 synhw.capSleep = (status[2] & 0x10) != 0;
6449 synhw.capFourButtons = (status[2] & 0x08) != 0;
6450 synhw.capBallistics = (status[2] & 0x04) != 0;
6451 synhw.capMultiFinger = (status[2] & 0x02) != 0;
6452 synhw.capPalmDetect = (status[2] & 0x01) != 0;
6462 synhw.infoXupmm = status[0];
6463 synhw.infoYupmm = status[2];
6468 printf(" capExtended: %d\n", synhw.capExtended);
6469 printf(" capMiddle: %d\n", synhw.capMiddle);
6471 synhw.nExtendedQueries);
6472 printf(" capPassthrough: %d\n", synhw.capPassthrough);
6473 printf(" capLowPower: %d\n", synhw.capLowPower);
6475 synhw.capMultiFingerReport);
6476 printf(" capSleep: %d\n", synhw.capSleep);
6477 printf(" capFourButtons: %d\n", synhw.capFourButtons);
6478 printf(" capBallistics: %d\n", synhw.capBallistics);
6479 printf(" capMultiFinger: %d\n", synhw.capMultiFinger);
6480 printf(" capPalmDetect: %d\n", synhw.capPalmDetect);
6481 printf(" infoXupmm: %d\n", synhw.infoXupmm);
6482 printf(" infoYupmm: %d\n", synhw.infoYupmm);
6490 if (synhw.nExtendedQueries >= 1) {
6498 synhw.verticalScroll = (status[0] & 0x01) != 0;
6499 synhw.horizontalScroll = (status[0] & 0x02) != 0;
6500 synhw.verticalWheel = (status[0] & 0x08) != 0;
6501 synhw.nExtendedButtons = (status[1] & 0xf0) >> 4;
6502 synhw.capEWmode = (status[0] & 0x04) != 0;
6506 synhw.verticalScroll);
6508 synhw.horizontalScroll);
6510 synhw.verticalWheel);
6512 synhw.nExtendedButtons);
6514 synhw.capEWmode);
6521 buttons = synhw.nExtendedButtons + synhw.capMiddle;
6527 buttons = synhw.capFourButtons ? 1 : 0;
6530 if (synhw.nExtendedQueries >= 4) {
6539 synhw.capClickPad = (status[1] & 0x01) << 1;
6540 synhw.capClickPad |= (status[0] & 0x10) != 0;
6541 synhw.capDeluxeLEDs = (status[1] & 0x02) != 0;
6542 synhw.noAbsoluteFilter = (status[1] & 0x04) != 0;
6543 synhw.capReportsV = (status[1] & 0x08) != 0;
6544 synhw.capUniformClickPad = (status[1] & 0x10) != 0;
6545 synhw.capReportsMin = (status[1] & 0x20) != 0;
6546 synhw.capInterTouch = (status[1] & 0x40) != 0;
6547 synhw.capReportsMax = (status[0] & 0x02) != 0;
6548 synhw.capClearPad = (status[0] & 0x04) != 0;
6549 synhw.capAdvancedGestures = (status[0] & 0x08) != 0;
6550 synhw.capCoveredPad = (status[0] & 0x80) != 0;
6552 if (synhw.capReportsMax) {
6561 synhw.maximumXCoord = (status[0] << 5) |
6563 synhw.maximumYCoord = (status[2] << 5) |
6567 if (synhw.capReportsMin) {
6576 synhw.minimumXCoord = (status[0] << 5) |
6578 synhw.minimumYCoord = (status[2] << 5) |
6586 if (synhw.capClickPad && psmcpnp_sc != NULL) {
6589 synhw.forcePad = 1;
6592 synhw.topButtonPad = 1;
6602 synhw.capClickPad);
6604 synhw.capDeluxeLEDs);
6606 synhw.noAbsoluteFilter);
6608 synhw.capReportsV);
6610 synhw.capUniformClickPad);
6612 synhw.capReportsMin);
6614 synhw.capInterTouch);
6616 synhw.capReportsMax);
6618 synhw.capClearPad);
6620 synhw.capAdvancedGestures);
6622 synhw.capCoveredPad);
6623 if (synhw.capReportsMax) {
6625 synhw.maximumXCoord);
6627 synhw.maximumYCoord);
6629 if (synhw.capReportsMin) {
6631 synhw.minimumXCoord);
6633 synhw.minimumYCoord);
6635 if (synhw.capClickPad) {
6638 synhw.forcePad);
6640 synhw.topButtonPad);
6643 buttons += synhw.capClickPad;
6648 if (synhw.capExtended)
6671 if (!SYNAPTICS_VERSION_GE(synhw, 7, 5) && status[1] != 0x47) {
6677 sc->synhw = synhw;
6686 if (trackpoint_support && synhw.capPassthrough) {
6725 if (sc->synhw.capPassthrough)
6729 if (sc->synhw.capPassthrough &&
6736 if (sc->synhw.capPassthrough)
6742 if (sc->synhw.capPassthrough)
6962 if (sc->synhw.capPassthrough)
6976 if (sc->synhw.capPassthrough)
6985 if (!sc->synhw.capPassthrough) {
6996 if (sc->synhw.capPassthrough)
7134 sc->synhw.infoMajor = sc->elanhw.hwversion;
7135 sc->synhw.infoMinor = sc->elanhw.fwversion;
7136 sc->synhw.infoXupmm = sc->elanhw.dpmmx;
7137 sc->synhw.infoYupmm = sc->elanhw.dpmmy;
7138 sc->synhw.verticalScroll = 0;
7139 sc->synhw.nExtendedQueries = 4;
7140 sc->synhw.capExtended = 1;
7141 sc->synhw.capPassthrough = sc->elanhw.hastrackpoint;
7142 sc->synhw.capClickPad = sc->elanhw.isclickpad;
7143 sc->synhw.capMultiFinger = 1;
7145 sc->synhw.capAdvancedGestures = 1;
7147 sc->synhw.capReportsV = 1;
7148 sc->synhw.capPalmDetect = 1;
7149 sc->synhw.capPen = 0;
7150 sc->synhw.capReportsMax = 1;
7151 sc->synhw.maximumXCoord = sc->elanhw.sizex;
7152 sc->synhw.maximumYCoord = sc->elanhw.sizey;
7153 sc->synhw.capReportsMin = 1;
7154 sc->synhw.minimumXCoord = 0;
7155 sc->synhw.minimumYCoord = 0;