new file mode 100644
@@ -0,0 +1,60 @@
+What: /sys/kernel/debug/heatmap-dev_driver_string-dev_name/
+Date:
+KernelVersion:
+Contact:
+Description:
+ A directory will be created under heatmap for each device which
+ provides heatmap data.
+
+What: /sys/kernel/debug/heatmap-dev_driver_string-dev_name/datatype/
+Date:
+KernelVersion:
+Contact:
+Description:
+ The device can have multiple heatmap data types. A directory is created
+ for each one.
+
+What: /sys/kernel/debug/heatmap-xxx/datatype/format
+Date:
+KernelVersion:
+Contact:
+Description:
+ Specifies the type of each data value, one of:
+ uint8
+ uint16
+ uint32
+ int8
+ int16
+ int32
+
+What: /sys/kernel/debug/heatmap-xxx/datatype/width
+Date:
+KernelVersion:
+Contact:
+Description:
+ The width of the data.
+
+What: /sys/kernel/debug/heatmap-xxx/datatype/height
+Date:
+KernelVersion:
+Contact:
+Description:
+ The height of the data.
+
+What: /sys/kernel/debug/heatmap-xxx/datatype/name
+Date:
+KernelVersion:
+Contact:
+Description:
+ Display name for the data.
+
+What: /sys/kernel/debug/heatmap-xxx/datatype/data
+Date:
+KernelVersion:
+Contact:
+Description:
+ Binary attribute for the data.
+
+ The orientation of the data should correspond to the co-ordinates
+ reported to the input layer. Starting at the top left hand corner, rows
+ then columns. The endianness of data values will be as per host cpu.
@@ -236,21 +236,31 @@ struct mxt_object {
struct mxt_debug_datatype {
u8 mode;
char *name;
+ char *desc;
+ char *format;
};
struct mxt_debug_entry {
struct mxt_data *data;
const struct mxt_debug_datatype *datatype;
+ u16 width;
+ u16 height;
+ struct debugfs_blob_wrapper format_wrapper;
+ struct debugfs_blob_wrapper desc_wrapper;
};
static const struct mxt_debug_datatype mxt_dbg_datatypes[] = {
{
.mode = MXT_DIAGNOSTIC_REFS,
.name = "refs",
+ .desc = "Mutual Capacitance References",
+ .format = "uint16",
},
{
.mode = MXT_DIAGNOSTIC_DELTAS,
.name = "deltas",
+ .desc = "Mutual Capacitance Deltas",
+ .format = "int16",
},
};
@@ -2286,6 +2296,7 @@ static void mxt_debugfs_init(struct mxt_data *data)
char dirname[50];
struct dentry *dent;
struct mxt_debug_entry *e;
+ struct dentry *dir;
int i;
object = mxt_get_object(data, MXT_GEN_COMMAND_T6);
@@ -2337,9 +2348,40 @@ static void mxt_debugfs_init(struct mxt_data *data)
e->data = data;
e->datatype = mxt_dbg_datatypes + i;
- dent = debugfs_create_file(mxt_dbg_datatypes[i].name, S_IRUGO,
- dbg->debugfs_dir, e,
- &mxt_debugfs_data_ops);
+ dir = debugfs_create_dir(mxt_dbg_datatypes[i].name,
+ dbg->debugfs_dir);
+ if (!dir)
+ goto error;
+
+ e->width = data->xyswitch ? data->ysize : data->xsize;
+ e->height = data->xyswitch ? data->xsize : data->ysize;
+
+ e->format_wrapper.data = (void *)e->datatype->format;
+ e->format_wrapper.size = strlen(e->datatype->format);
+ dent = debugfs_create_blob("format", S_IRUGO,
+ dir, &e->format_wrapper);
+ if (!dent)
+ goto error;
+
+ e->desc_wrapper.data = (void *)e->datatype->desc;
+ e->desc_wrapper.size = strlen(e->datatype->desc);
+ dent = debugfs_create_blob("name", S_IRUGO,
+ dir, &e->desc_wrapper);
+ if (!dent)
+ goto error;
+
+ dent = debugfs_create_u16("width", S_IRUGO,
+ dir, &e->width);
+ if (!dent)
+ goto error;
+
+ dent = debugfs_create_u16("height", S_IRUGO,
+ dir, &e->height);
+ if (!dent)
+ goto error;
+
+ dent = debugfs_create_file("data", S_IRUGO,
+ dir, e, &mxt_debugfs_data_ops);
if (!dent)
goto error;
}
Add information to debugfs to allow a generic utility to retrieve screen parameters and info. Signed-off-by: Nick Dyer <nick.dyer@itdev.co.uk> --- Documentation/ABI/testing/debugfs-heatmap | 60 +++++++++++++++++++++++++++++++ drivers/input/touchscreen/atmel_mxt_ts.c | 48 +++++++++++++++++++++++-- 2 files changed, 105 insertions(+), 3 deletions(-) create mode 100644 Documentation/ABI/testing/debugfs-heatmap