+ /*
+ Filter commands will ignore the ID due to fact that filtering affects
+ the B- channel and Audio Tap trace levels only. Also MAINT driver will
+ select the right trace ID by itself
+ */
+ case DITRACE_WRITE_SELECTIVE_TRACE_FILTER:
+ if (!mask) {
+ ret = diva_set_trace_filter (1, "*");
+ } else if (mask < sizeof(data)) {
+ if (diva_os_copy_from_user(NULL, data, (char __user *)buf+12, mask)) {
+ ret = -EFAULT;
+ } else {
+ ret = diva_set_trace_filter ((int)mask, data);
+ }
+ } else {
+ ret = -EINVAL;
+ }
+ break;
+
+ case DITRACE_READ_SELECTIVE_TRACE_FILTER:
+ if ((ret = diva_get_trace_filter (sizeof(data), data)) > 0) {
+ if (diva_os_copy_to_user (NULL, buf, data, ret))
+ ret = -EFAULT;
+ } else {
+ ret = -ENODEV;
+ }
+ break;
+