static int greybus_match_one_id(struct greybus_device *gdev,
const struct greybus_module_id *id)
{
- struct greybus_descriptor *des = &gdev->descriptor;
+ struct greybus_descriptor_module_id *module_id;
+ struct greybus_descriptor_serial_number *serial_num;
+
+ module_id = &gdev->module_id;
+ serial_num = &gdev->serial_number;
if ((id->match_flags & GREYBUS_DEVICE_ID_MATCH_VENDOR) &&
- (des->wVendor != id->wVendor))
+ (id->vendor != le16_to_cpu(module_id->vendor)))
return 0;
if ((id->match_flags & GREYBUS_DEVICE_ID_MATCH_PRODUCT) &&
- (des->wProduct != id->wProduct))
+ (id->product != le16_to_cpu(module_id->product)))
return 0;
if ((id->match_flags & GREYBUS_DEVICE_ID_MATCH_SERIAL) &&
- (des->lSerialNumber != id->lSerialNumber))
+ (id->serial_number != le64_to_cpu(serial_num->serial_number)))
return 0;
return 1;
if (id == NULL)
return NULL;
- for (; id->wVendor || id->wProduct || id->lSerialNumber ||
+ for (; id->vendor || id->product || id->serial_number ||
id->driver_info ; id++) {
if (greybus_match_one_id(gdev, id))
return id;
EXPORT_SYMBOL_GPL(greybus_deregister);
-static int new_device(struct greybus_device *gdev,
+int new_device(struct greybus_device *gdev,
const struct greybus_module_id *id)
{
int retval;
return retval;
}
-static void remove_device(struct greybus_device *gdev)
+void remove_device(struct greybus_device *gdev)
{
/* tear down all of the "sub device types" for this device */
gb_i2c_disconnect(gdev);
#ifdef __KERNEL__
+#include <linux/types.h>
#include <linux/list.h>
#include <linux/device.h>
#include <linux/module.h>
#include "greybus_id.h"
+#include "greybus_desc.h"
#define GREYBUS_DEVICE_ID_MATCH_DEVICE \
(GREYBUS_DEVICE_ID_MATCH_VENDOR | GREYBUS_DEVICE_ID_MATCH_PRODUCT)
-#define GREYBUS_DEVICE(vendor, product) \
+#define GREYBUS_DEVICE(v, p) \
.match_flags = GREYBUS_DEVICE_ID_MATCH_DEVICE, \
- .wVendor = (vendor), \
- .wProduct = (product),
+ .vendor = (v), \
+ .product = (p),
-#define GREYBUS_DEVICE_SERIAL(serial) \
+#define GREYBUS_DEVICE_SERIAL(s) \
.match_flags = GREYBUS_DEVICE_ID_MATCH_SERIAL, \
- .lSerial = (serial),
+ .serial_number = (s),
-struct greybus_descriptor {
- __u16 wVendor;
- __u16 wProduct;
- __u64 lSerialNumber;
-};
struct gbuf;
struct greybus_device {
struct device dev;
- struct greybus_descriptor descriptor;
+ struct greybus_descriptor_function function;
+ struct greybus_descriptor_module_id module_id;
+ struct greybus_descriptor_serial_number serial_number;
int num_cport;
struct cport cport[0];