Staging: vme: add VME Location Monitor management mechanism
[deliverable/linux.git] / drivers / staging / vme / TODO
index 046cf5815998adb610b874e22a2e0168834b4503..1e1f4d65976caf0cffb994e23c0d68c6cfdb6e61 100644 (file)
@@ -331,44 +331,44 @@ monitor.
 Location Monitor Management
 ---------------------------
 
-TODO:  Provide a mechanism to request use of the location monitor. The location
-       monitors can be moved and we only want one driver to be able to do that
-       at a time! We also need to be able to free the location monitor for
-       others to use.
+The following functions are provided to request the use of a block of location
+monitors and to free them after they are no longer required:
 
-       struct vme_resource * vme_request_lm(struct device *dev);
+       struct vme_resource * vme_lm_request(struct device *dev);
 
-       void vme_free_lm(struct vme_resource * res);
+       void vme_lm_free(struct vme_resource * res);
+
+Each block may provide a number of location monitors, monitoring adjacent
+locations. The following function can be used to determine how many locations
+are provided:
+
+       int vme_lm_count(struct vme_resource * res);
 
 
 Location Monitor Configuration
 ------------------------------
 
-TODO:  Change to struct "vme_resource *res" rather than "struct device *dev".
+Once a bank of location monitors has been allocated, the following functions
+are provided to configure the location and mode of the location monitor:
 
-The following functions are provided to configure the location and mode of the
-location monitor:
-
-       int vme_lm_set(struct device *dev, unsigned long long base,
+       int vme_lm_set(struct vme_resource *res, unsigned long long base,
                vme_address_t aspace, vme_cycle_t cycle);
 
-       int vme_lm_get(struct device *dev, unsigned long long *base,
+       int vme_lm_get(struct vme_resource *res, unsigned long long *base,
                vme_address_t *aspace, vme_cycle_t *cycle);
 
 
 Location Monitor Use
 --------------------
 
-TODO:  Change to struct "vme_resource *res" rather than "struct device *dev".
-
 The following functions allow a callback to be attached and detached from each
-location monitor location. The API currently supports 4 location monitors,
-monitoring 4 adjacent locations:
+location monitor location. Each location monitor can monitor a number of
+adjacent locations:
 
-       int vme_lm_attach(struct device *dev, int num,
+       int vme_lm_attach(struct vme_resource *res, int num,
                void (*callback)(int));
 
-       int vme_lm_detach(struct device *dev, int num);
+       int vme_lm_detach(struct vme_resource *res, int num);
 
 The callback function is declared as follows.
 
This page took 0.024764 seconds and 5 git commands to generate.