aboutsummaryrefslogtreecommitdiff
path: root/rmidevice/rmidevice.cpp
diff options
context:
space:
mode:
authorSatoshi Noguchi <satoshi.noguchi@jp.synaptics.com>2014-09-29 02:47:25 -0700
committerSatoshi Noguchi <satoshi.noguchi@jp.synaptics.com>2014-09-29 13:50:05 -0700
commit3020cbb062d094612429051eec89f268133799ac (patch)
treed2bf0c4bf712586528f667697c490fb9d4889998 /rmidevice/rmidevice.cpp
parent2230416db6b17770d7006b37bef08bff5c48cbf0 (diff)
downloadrmi4utils-3020cbb062d094612429051eec89f268133799ac.tar.gz
Have interrupt register number and mask in RMIFunction
Diffstat (limited to 'rmidevice/rmidevice.cpp')
-rw-r--r--rmidevice/rmidevice.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/rmidevice/rmidevice.cpp b/rmidevice/rmidevice.cpp
index 6802d8e..454998c 100644
--- a/rmidevice/rmidevice.cpp
+++ b/rmidevice/rmidevice.cpp
@@ -262,6 +262,7 @@ int RMIDevice::ScanPDT(int endFunc, int endPage)
unsigned int maxPage;
unsigned int addr;
unsigned char entry[RMI_DEVICE_PDT_ENTRY_SIZE];
+ unsigned int interruptCount = 0;
maxPage = (unsigned int)((endPage < 0) ? RMI_DEVICE_MAX_PAGE : endPage);
@@ -282,11 +283,12 @@ int RMIDevice::ScanPDT(int endFunc, int endPage)
return rc;
}
- RMIFunction func(entry, page_start);
+ RMIFunction func(entry, page_start, interruptCount);
if (func.GetFunctionNumber() == 0)
break;
m_functionList.push_back(func);
+ interruptCount += func.GetInterruptSourceCount();
found = true;
if (func.GetFunctionNumber() == endFunc)
@@ -297,6 +299,8 @@ int RMIDevice::ScanPDT(int endFunc, int endPage)
break;
}
+ m_numInterruptRegs = (interruptCount + 7) / 8;
+
return 0;
}