Merge branch 'hwmon-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelv...
[pandora-kernel.git] / drivers / staging / iio / iio.h
index 9d0ca12..248bdd2 100644 (file)
@@ -90,12 +90,7 @@ void iio_remove_event_from_list(struct iio_event_handler_list *el,
  * @ring:              [DRIVER] any ring buffer present
  * @mlock:             [INTERN] lock used to prevent simultaneous device state
  *                     changes
- * @scan_el_attrs:     [DRIVER] control of scan elements if that scan mode
- *                     control method is used
- * @scan_count:        [INTERN] the number of elements in the current scan mode
- * @scan_mask:         [INTERN] bitmask used in masking scan mode elements
  * @available_scan_masks: [DRIVER] optional array of allowed bitmasks
- * @scan_timestamp:    [INTERN] does the scan mode include a timestamp
  * @trig:              [INTERN] current device trigger (ring buffer modes)
  * @pollfunc:          [DRIVER] function run on trigger being recieved
  **/
@@ -118,104 +113,11 @@ struct iio_dev {
        struct iio_ring_buffer          *ring;
        struct mutex                    mlock;
 
-       struct attribute_group          *scan_el_attrs;
-       int                             scan_count;
-
-       u32                             scan_mask;
        u32                             *available_scan_masks;
-       bool                            scan_timestamp;
        struct iio_trigger              *trig;
        struct iio_poll_func            *pollfunc;
 };
 
-/*
- * These are mainly provided to allow for a change of implementation if a device
- * has a large number of scan elements
- */
-#define IIO_MAX_SCAN_LENGTH 31
-
-/* note 0 used as error indicator as it doesn't make sense. */
-static inline u32 iio_scan_mask_match(u32 *av_masks, u32 mask)
-{
-       while (*av_masks) {
-               if (!(~*av_masks & mask))
-                       return *av_masks;
-               av_masks++;
-       }
-       return 0;
-}
-
-static inline int iio_scan_mask_query(struct iio_dev *dev_info, int bit)
-{
-       u32 mask;
-
-       if (bit > IIO_MAX_SCAN_LENGTH)
-               return -EINVAL;
-
-       if (!dev_info->scan_mask)
-               return 0;
-
-       if (dev_info->available_scan_masks)
-               mask = iio_scan_mask_match(dev_info->available_scan_masks,
-                                       dev_info->scan_mask);
-       else
-               mask = dev_info->scan_mask;
-
-       if (!mask)
-               return -EINVAL;
-
-       return !!(mask & (1 << bit));
-};
-
-static inline int iio_scan_mask_set(struct iio_dev *dev_info, int bit)
-{
-       u32 mask;
-       u32 trialmask = dev_info->scan_mask | (1 << bit);
-
-       if (bit > IIO_MAX_SCAN_LENGTH)
-               return -EINVAL;
-       if (dev_info->available_scan_masks) {
-               mask = iio_scan_mask_match(dev_info->available_scan_masks,
-                                       trialmask);
-               if (!mask)
-                       return -EINVAL;
-       }
-       dev_info->scan_mask = trialmask;
-       dev_info->scan_count++;
-
-       return 0;
-};
-
-static inline int iio_scan_mask_clear(struct iio_dev *dev_info, int bit)
-{
-       if (bit > IIO_MAX_SCAN_LENGTH)
-               return -EINVAL;
-       dev_info->scan_mask &= ~(1 << bit);
-       dev_info->scan_count--;
-       return 0;
-};
-
-/**
- * iio_scan_mask_count_to_right() - how many scan elements occur before here
- * @dev_info: the iio_device whose scan mode we are querying
- * @bit: which number scan element is this
- **/
-static inline int iio_scan_mask_count_to_right(struct iio_dev *dev_info,
-                                               int bit)
-{
-       int count = 0;
-       int mask = (1 << bit);
-       if (bit > IIO_MAX_SCAN_LENGTH)
-               return -EINVAL;
-       while (mask) {
-               mask >>= 1;
-               if (mask & dev_info->scan_mask)
-                       count++;
-       }
-
-       return count;
-}
-
 /**
  * iio_device_register() - register a device with the IIO subsystem
  * @dev_info:          Device structure filled by the device driver
@@ -233,7 +135,7 @@ void iio_device_unregister(struct iio_dev *dev_info);
  *                     physical interrupt lines
  * @dev_info:          the iio device for which the is an interrupt line
  * @line_number:       associated line number
- * @id:                        idr allocated unique id number
+ * @id:                        ida allocated unique id number
  * @irq:               associate interrupt number
  * @ev_list:           event handler list for associated events
  * @ev_list_lock:      ensure only one access to list at a time
@@ -400,8 +302,8 @@ static inline bool iio_ring_enabled(struct iio_dev *dev_info)
                   | INDIO_RING_HARDWARE_BUFFER);
 };
 
-struct idr;
+struct ida;
 
-int iio_get_new_idr_val(struct idr *this_idr);
-void iio_free_idr_val(struct idr *this_idr, int id);
+int iio_get_new_ida_val(struct ida *this_ida);
+void iio_free_ida_val(struct ida *this_ida, int id);
 #endif /* _INDUSTRIAL_IO_H_ */