diff options
author | Martyn Welch <martyn.welch@gefanuc.com> | 2009-08-11 17:44:56 +0100 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2009-09-15 12:02:11 -0700 |
commit | 42fb503122d8cd428b5b1078bd473847ca2b206c (patch) | |
tree | ad3ed37190f00556b30e489c863753eabedbba3a /drivers/staging/vme/TODO | |
parent | 400822fec46ce69d2ba7692689a1689653f7b847 (diff) | |
download | op-kernel-dev-42fb503122d8cd428b5b1078bd473847ca2b206c.zip op-kernel-dev-42fb503122d8cd428b5b1078bd473847ca2b206c.tar.gz |
Staging: vme: add VME Location Monitor management mechanism
Extend the image and DMA channel resource management methods to control the
location monitor resource. The location monitor should be controlled as it can
only be used at a single location at a time.
Signed-off-by: Martyn Welch <martyn.welch@gefanuc.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/vme/TODO')
-rw-r--r-- | drivers/staging/vme/TODO | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/drivers/staging/vme/TODO b/drivers/staging/vme/TODO index 046cf58..1e1f4d6 100644 --- a/drivers/staging/vme/TODO +++ b/drivers/staging/vme/TODO @@ -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. |