/* Generic request types */
-#define GB_REQUEST_TYPE_PING 0x00
+#define GB_REQUEST_TYPE_CPORT_SHUTDOWN 0x00
#define GB_REQUEST_TYPE_INVALID 0x7f
+struct gb_cport_shutdown_request {
+ __u8 phase;
+} __packed;
+
/* Control Protocol */
/* request to control the CSI transmitter */
#define GB_APB_REQUEST_CSI_TX_CONTROL 0x08
-/* request to control the CSI transmitter */
+/* request to control audio streaming */
#define GB_APB_REQUEST_AUDIO_CONTROL 0x09
-/* vendor requests to enable/disable CPort features */
-#define GB_APB_REQUEST_CPORT_FEAT_EN 0x0b
-#define GB_APB_REQUEST_CPORT_FEAT_DIS 0x0c
-
-/* TimeSync commands */
-#define REQUEST_TIMESYNC_ENABLE 0x0d
-#define REQUEST_TIMESYNC_DISABLE 0x0e
-#define REQUEST_TIMESYNC_AUTHORITATIVE 0x0f
-#define REQUEST_TIMESYNC_GET_LAST_EVENT 0x10
+/* TimeSync requests */
+#define GB_APB_REQUEST_TIMESYNC_ENABLE 0x0d
+#define GB_APB_REQUEST_TIMESYNC_DISABLE 0x0e
+#define GB_APB_REQUEST_TIMESYNC_AUTHORITATIVE 0x0f
+#define GB_APB_REQUEST_TIMESYNC_GET_LAST_EVENT 0x10
/* requests to set Greybus CPort flags */
#define GB_APB_REQUEST_CPORT_FLAGS 0x11
-/* ARPC command */
-#define APBA_REQUEST_ARPC_RUN 0x12
+/* ARPC request */
+#define GB_APB_REQUEST_ARPC_RUN 0x12
struct gb_apb_request_cport_flags {
__le32 flags;
#define GB_APB_CPORT_FLAG_HIGH_PRIO 0x02
} __packed;
-/* APBridgeA RPC (ARPC) */
-
-enum arpc_result {
- ARPC_SUCCESS = 0x00,
- ARPC_NO_MEMORY = 0x01,
- ARPC_INVALID = 0x02,
- ARPC_TIMEOUT = 0x03,
- ARPC_UNKNOWN_ERROR = 0xff,
-};
-
-/* ARPC request */
-struct arpc_request_message {
- __le16 id; /* RPC unique id */
- __le16 size; /* Size in bytes of header + payload */
- __u8 type; /* RPC type */
- __u8 data[0]; /* ARPC data */
-} __packed;
-
-/* ARPC response */
-struct arpc_response_message {
- __le16 id; /* RPC unique id */
- __u8 result; /* Result of RPC */
-} __packed;
-
-#define ARPC_TYPE_CPORT_RESET 0x00
-
-struct arpc_cport_reset_req {
- __le16 cport_id;
-} __packed;
/* Firmware Download Protocol */
#define GB_FW_DOWNLOAD_TYPE_FETCH_FIRMWARE 0x02
#define GB_FW_DOWNLOAD_TYPE_RELEASE_FIRMWARE 0x03
-#define GB_FIRMWARE_TAG_MAX_LEN 10
+#define GB_FIRMWARE_TAG_MAX_SIZE 10
/* firmware download find firmware request/response */
struct gb_fw_download_find_firmware_request {
- __u8 firmware_tag[GB_FIRMWARE_TAG_MAX_LEN];
+ __u8 firmware_tag[GB_FIRMWARE_TAG_MAX_SIZE];
} __packed;
struct gb_fw_download_find_firmware_response {
/* firmware management interface firmware version request has no payload */
struct gb_fw_mgmt_interface_fw_version_response {
- __u8 firmware_tag[GB_FIRMWARE_TAG_MAX_LEN];
+ __u8 firmware_tag[GB_FIRMWARE_TAG_MAX_SIZE];
__le16 major;
__le16 minor;
} __packed;
struct gb_fw_mgmt_load_and_validate_fw_request {
__u8 request_id;
__u8 load_method;
- __u8 firmware_tag[GB_FIRMWARE_TAG_MAX_LEN];
+ __u8 firmware_tag[GB_FIRMWARE_TAG_MAX_SIZE];
} __packed;
/* firmware management load and validate firmware response has no payload*/
/* firmware management backend firmware version request/response */
struct gb_fw_mgmt_backend_fw_version_request {
- __u8 firmware_tag[GB_FIRMWARE_TAG_MAX_LEN];
+ __u8 firmware_tag[GB_FIRMWARE_TAG_MAX_SIZE];
} __packed;
struct gb_fw_mgmt_backend_fw_version_response {
/* firmware management backend firmware update request */
struct gb_fw_mgmt_backend_fw_update_request {
__u8 request_id;
- __u8 firmware_tag[GB_FIRMWARE_TAG_MAX_LEN];
+ __u8 firmware_tag[GB_FIRMWARE_TAG_MAX_SIZE];
} __packed;
/* firmware management backend firmware update response has no payload */
#define GB_SVC_TYPE_INTF_ACTIVATE 0x27
#define GB_SVC_TYPE_INTF_RESUME 0x28
#define GB_SVC_TYPE_INTF_MAILBOX_EVENT 0x29
+#define GB_SVC_TYPE_INTF_OOPS 0x2a
/* Greybus SVC protocol status values */
#define GB_SVC_OP_SUCCESS 0x00
} __packed;
/* intf_mailbox_event response has no payload */
+struct gb_svc_intf_oops_request {
+ __u8 intf_id;
+ __u8 reason;
+} __packed;
+/* intf_oops response has no payload */
+
/* RAW */
__le32 max_size;
} __packed;
-struct gb_camera_configure_streams_response_deprecated {
- __u8 num_streams;
- __u8 flags;
- __u8 num_lanes;
- __u8 padding;
- __le32 bus_freq;
- __le32 lines_per_second;
- struct gb_camera_stream_config_response config[0];
-} __packed;
-#define GB_CAMERA_CONFIGURE_STREAMS_DEPRECATED_SIZE 12
-
struct gb_camera_configure_streams_response {
__u8 num_streams;
#define GB_CAMERA_CONFIGURE_STREAMS_ADJUSTED 0x01
__le32 data_rate;
struct gb_camera_stream_config_response config[0];
};
-#define GB_CAMERA_CONFIGURE_STREAMS_SIZE 8
/* Greybus Camera Capture request payload - response has no payload */
struct gb_camera_capture_request {