-/* -*- c-basic-offset: 8 -*-
- *
- * fw-device.h - Device probing and sysfs code.
- *
+/*
* Copyright (C) 2005-2006 Kristian Hoegsberg <krh@bitplanet.net>
*
* This program is free software; you can redistribute it and/or modify
FW_DEVICE_SHUTDOWN,
};
+struct fw_attribute_group {
+ struct attribute_group *groups[2];
+ struct attribute_group group;
+ struct attribute *attrs[11];
+};
+
struct fw_device {
atomic_t state;
struct fw_node *node;
int node_id;
int generation;
+ unsigned max_speed;
struct fw_card *card;
struct device device;
struct list_head link;
struct list_head client_list;
- __be32 *config_rom;
+ u32 *config_rom;
size_t config_rom_length;
int config_rom_retries;
struct delayed_work work;
+ struct fw_attribute_group attribute_group;
};
static inline struct fw_device *
return container_of(dev, struct fw_device, device);
}
+static inline int
+fw_device_is_shutdown(struct fw_device *device)
+{
+ return atomic_read(&device->state) == FW_DEVICE_SHUTDOWN;
+}
+
struct fw_device *fw_device_get(struct fw_device *device);
void fw_device_put(struct fw_device *device);
int fw_device_enable_phys_dma(struct fw_device *device);
void fw_device_cdev_update(struct fw_device *device);
+void fw_device_cdev_remove(struct fw_device *device);
struct fw_device *fw_device_from_devt(dev_t devt);
extern int fw_cdev_major;
struct fw_unit {
struct device device;
u32 *directory;
+ struct fw_attribute_group attribute_group;
};
static inline struct fw_unit *
#define CSR_DEPENDENT_INFO 0x14
#define CSR_MODEL 0x17
#define CSR_INSTANCE 0x18
-
-#define SBP2_COMMAND_SET_SPECIFIER 0x38
-#define SBP2_COMMAND_SET 0x39
-#define SBP2_COMMAND_SET_REVISION 0x3b
-#define SBP2_FIRMWARE_REVISION 0x3c
+#define CSR_DIRECTORY_ID 0x20
struct fw_csr_iterator {
u32 *p;