- Jan 21, 2013
-
-
Alessandro Rubini authored
Some of the information in there was old, and we should rather extract the files in Documentaion/zio/ from the doc/zio-manual.txt . Currently, just remove the old information. Please, users, read material in doc/ instead (or the pdf on ohwr.org). Signed-off-by:
Alessandro Rubini <rubini@gnudd.com> Acked-by:
Federico Vaga <federico.vaga@gmail.com>
-
Alessandro Rubini authored
Signed-off-by:
Alessandro Rubini <rubini@gnudd.com> Acked-by:
Federico Vaga <federico.vaga@gmail.com>
-
Alessandro Rubini authored
Now that all buffers cannot fail at store_block() time, the file operations can be simplified. This also fixes some misbehaviour in corner cases. Signed-off-by:
Alessandro Rubini <rubini@gnudd.com> Acked-by:
Federico Vaga <federico.vaga@gmail.com>
-
Alessandro Rubini authored
This is a fix for a design bug for this buffer. Actually, the vmalloc buffer already is like this (and cannot be different). This allows simplifying chardev.c and fix some corner cases that are currently misbehaving. Signed-off-by:
Alessandro Rubini <rubini@gnudd.com> Acked-by:
Federico Vaga <federico.vaga@gmail.com>
-
Federico Vaga authored
Signed-off-by:
Federico Vaga <federico.vaga@gmail.com> Acked-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by:
Alessandro Rubini <rubini@gnudd.com> Acked-by:
Federico Vaga <federico.vaga@gmail.com>
-
Alessandro Rubini authored
Signed-off-by:
Alessandro Rubini <rubini@gnudd.com> Acked-by:
Federico Vaga <federico.vaga@gmail.com>
-
Alessandro Rubini authored
Also, avoid dereferencing a NULL pointer in raw_io(). Signed-off-by:
Alessandro Rubini <rubini@gnudd.com> Acked-by:
Federico Vaga <federico.vaga@gmail.com>
-
Alessandro Rubini authored
Signed-off-by:
Alessandro Rubini <rubini@gnudd.com> Acked-by:
Federico Vaga <federico.vaga@gmail.com>
-
Alessandro Rubini authored
Signed-off-by:
Alessandro Rubini <rubini@gnudd.com> Acked-by:
Federico Vaga <federico.vaga@gmail.com>
-
Alessandro Rubini authored
This also reorganizes generic_data_done to exploit symmetry between input and output csets. Actually, we didn't update seq_num or the timestamp for output, but now we have the current control in sysfs, so we'd better update it every time. Signed-off-by:
Alessandro Rubini <rubini@gnudd.com> Acked-by:
Federico Vaga <federico.vaga@gmail.com>
-
Alessandro Rubini authored
Signed-off-by:
Alessandro Rubini <rubini@gnudd.com> Acked-by:
Federico Vaga <federico.vaga@gmail.com>
-
Alessandro Rubini authored
Soft timestamping happens at zio_arm_trigger time. This removes the various software timestamping in the individual trigger. Moreover, arming is idempotent, so timestamp in the locked section, only when the trigger is actually armed. As usual, hardware can overwrite ti timestamps, so this software stamp is only used for devices that have no better notion of time. Signed-off-by:
Alessandro Rubini <rubini@gnudd.com> Acked-by:
Federico Vaga <federico.vaga@gmail.com>
-
Alessandro Rubini authored
Signed-off-by:
Alessandro Rubini <rubini@gnudd.com> Acked-by:
Federico Vaga <federico.vaga@gmail.com>
-
Alessandro Rubini authored
Signed-off-by:
Alessandro Rubini <rubini@gnudd.com> Acked-by:
Federico Vaga <federico.vaga@gmail.com>
-
Alessandro Rubini authored
Signed-off-by:
Alessandro Rubini <rubini@gnudd.com> Acked-by:
Federico Vaga <federico.vaga@gmail.com>
-
Federico Vaga authored
This help user-space programs which use libudev to rebuild the ZIO device structure Signed-off-by:
Federico Vaga <federico.vaga@gmail.com> Acked-by:
Alessandro Rubini <rubini@gnudd.com>
-
Federico Vaga authored
This has no effect for ZIO users Signed-off-by:
Federico Vaga <federico.vaga@gmail.com> Acked-by:
Alessandro Rubini <rubini@gnudd.com>
-
Federico Vaga authored
address is a default ZIO binary attribute which return the channel address structure zio_addr. Signed-off-by:
Federico Vaga <federico.vaga@gmail.com> Acked-by:
Alessandro Rubini <rubini@gnudd.com>
-
Federico Vaga authored
Alarms are raised by some events and are persistent (in sysfs and in the control blocks) until they are cleared in sysfs. Clearing is write-1-to-clear (i.e.: write 32 to clear bit 5). Signed-off-by:
Federico Vaga <federico.vaga@gmail.com> Acked-by:
Alessandro Rubini <rubini@gnudd.com>
-
Federico Vaga authored
The Linux kernel automatic updates the uevent attributes only if the device has a bus or a class. When the Linux kernel updates the uevent it automatically adds the DEVTYPE attribute if the device has a device_type. In ZIO cset, channel, buffer and trigger have not a bus or a class, but they have a different device_type. These attributes are used to export the device_type to user-space and allow libudev to easy inspect the ZIO device hierarchy. Signed-off-by:
Federico Vaga <federico.vaga@gmail.com> Acked-by:
Alessandro Rubini <rubini@gnudd.com>
-
This has no effect on ZIO users, but tries to make some order in the file itself giving symbolic name to attribute groups. Signed-off-by:
Federico Vaga <federico.vaga@gmail.com> Acked-by:
Alessandro Rubini <rubini@gnudd.com> Conflicts: sysfs.c
-
The devname attribute returns the device name in /dev to gain access to blocks. Signed-off-by:
Federico Vaga <federico.vaga@gmail.com> Acked-by:
Alessandro Rubini <rubini@gnudd.com>
-
This is not really useful for the ZIO framework, but it simplify the work on the user-space side with the libudev library Signed-off-by:
Federico Vaga <federico.vaga@gmail.com> Acked-by:
Alessandro Rubini <rubini@gnudd.com>
-
This fixes a deadlock when changing of trigger type at runtime. bug introduced in a496ca04 Signed-off-by:
Federico Vaga <federico.vaga@gmail.com> Acked-by:
Alessandro Rubini <rubini@gnudd.com>
-
- Jan 19, 2013
-
-
Alessandro Rubini authored
Since __zio_write_allowed and __zio_read_allowed don't check the type of cset (input or output), it must be checked by the called, like read and write do. Otherwise, users of poll() on input channels will loose one every other block, because now __zio_write_allowed can free user blocks. Bug exposed by commit: efbcb48a chardev.c: support zero-sized blocks on output Signed-off-by:
Alessandro Rubini <rubini@gnudd.com> Acked-by:
Federico Vaga <federico.vaga@gmail.com>
-
- Jan 18, 2013
-
-
This patch renames ZIO_CONTROL_SIZE to __ZIO_CONTROL_SIZE and it introduces the function zio_control_size(chan). At a future time, the function will return a channel-dependent value, when we implement TLV to extend the control structure. Signed-off-by:
Federico Vaga <federico.vaga@gmail.com> Acked-by:
Alessandro Rubini <rubini@gnudd.com>
-
This patch introduces ZIO_RW_PERM and ZIO_RO_PERM, which are used in all attributes. Prevoously we had write-all for writeable attributes, now we only allos the owner and the group. Signed-off-by:
Federico Vaga <federico.vaga@gmail.com> Acked-by:
Alessandro Rubini <rubini@gnudd.com>
-
Signed-off-by:
Federico Vaga <federico.vaga@gmail.com> Acked-by:
Alessandro Rubini <rubini@gnudd.com>
-
The control version is already in available in /sys/bus/zio. Signed-off-by:
Federico Vaga <federico.vaga@gmail.com> Acked-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by:
Alessandro Rubini <rubini@gnudd.com> Acked-by:
Federico Vaga <federico.vaga@gmail.com>
-
Alessandro Rubini authored
This device accepts zero-sized output blocks: it uses the timestamp in the control to fire an event, which in this case is a printk message. Signed-off-by:
Alessandro Rubini <rubini@gnudd.com> Acked-by:
Federico Vaga <federico.vaga@gmail.com>
-
- Jan 17, 2013
-
-
Alessandro Rubini authored
Signed-off-by:
Alessandro Rubini <rubini@gnudd.com> Acked-by:
Federico Vaga <federico.vaga@gmail.com>
-
Alessandro Rubini authored
zio_cset_is_self_timed() only returned true for input channels. This is needed, but the name is wrong: use zio_cset_early_arm() instead. An output channel can be self-timed as well, so trigger_data_done check the flag directly, not early_arm(). Every self-timed cset must be rearmed when the trigger fired. Signed-off-by:
Alessandro Rubini <rubini@gnudd.com> Acked-by:
Federico Vaga <federico.vaga@gmail.com>
-
Alessandro Rubini authored
With the new self-timed output devices, the last raw_io() when the buffer is empty would fail, so we need to mark the trigger as not-armed, in order for output to restart when the next push happens. Signed-off-by:
Alessandro Rubini <rubini@gnudd.com> Acked-by:
Federico Vaga <federico.vaga@gmail.com>
-
Alessandro Rubini authored
Signed-off-by:
Alessandro Rubini <rubini@gnudd.com> Acked-by:
Federico Vaga <federico.vaga@gmail.com>
-
Alessandro Rubini authored
The ms-phase attribute pairs with ms-period. In this way you can have a fine control about when the I/O happens. Please note that the epoch of the time base is unphatomable (it is related to boot time). So you can manage offsets between csets, but not absolute stamps. For that please use the HRT trigger. Every trigger instance starts at phase 0 (i.e., the trigger is armed at a multiple of its period). If you later change the period, no phase calculation is performed, so that the new period will be as requested (to allow for slowly-changing periods. If, however, you change the phase, the trigger is re-armed with that absolute phase, to allow for slowly-changing phase. If you change the period and then you change the phase, you'll experience an unexpected period during the transition. Signed-off-by:
Alessandro Rubini <rubini@gnudd.com> Acked-by:
Federico Vaga <federico.vaga@gmail.com>
-
Signed-off-by:
Federico Vaga <federico.vaga@gmail.com> Acked-by:
Alessandro Rubini <rubini@gnudd.com>
-
Alessandro Rubini authored
Signed-off-by:
Alessandro Rubini <rubini@gnudd.com> Acked-by:
Federico Vaga <federico.vaga@gmail.com>
-
- Jan 10, 2013
-
-
Alessandro Rubini authored
This merges a series of commits that introduce self-timed devices (exemplified by a tdc driver), zero-size-block for input channels and an overall better and simplified locking policy for csets and triggers.
-