summaryrefslogtreecommitdiff
path: root/drivers/staging
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/staging')
-rw-r--r--drivers/staging/octeon-usb/cvmx-usb.c12
-rw-r--r--drivers/staging/octeon-usb/cvmx-usb.h31
2 files changed, 26 insertions, 17 deletions
diff --git a/drivers/staging/octeon-usb/cvmx-usb.c b/drivers/staging/octeon-usb/cvmx-usb.c
index 3cc315ded3f9..8a9d94b80ea0 100644
--- a/drivers/staging/octeon-usb/cvmx-usb.c
+++ b/drivers/staging/octeon-usb/cvmx-usb.c
@@ -1448,7 +1448,8 @@ static void __cvmx_usb_start_channel_control(struct cvmx_usb_internal_state *usb
struct cvmx_usb_pipe *pipe)
{
struct cvmx_usb_transaction *transaction = pipe->head;
- cvmx_usb_control_header_t *header = cvmx_phys_to_ptr(transaction->control_header);
+ union cvmx_usb_control_header *header =
+ cvmx_phys_to_ptr(transaction->control_header);
int bytes_to_transfer = transaction->buffer_length - transaction->actual_bytes;
int packets_to_transfer;
cvmx_usbcx_hctsizx_t usbc_hctsiz;
@@ -2319,7 +2320,8 @@ int cvmx_usb_submit_control(struct cvmx_usb_state *state, int pipe_handle,
{
int submit_handle;
struct cvmx_usb_internal_state *usb = (struct cvmx_usb_internal_state *)state;
- cvmx_usb_control_header_t *header = cvmx_phys_to_ptr(control_header);
+ union cvmx_usb_control_header *header =
+ cvmx_phys_to_ptr(control_header);
/* Pipe handle checking is done later in a common place */
if (unlikely(!control_header))
@@ -2884,7 +2886,8 @@ static int __cvmx_usb_poll_channel(struct cvmx_usb_internal_state *usb, int chan
if (__cvmx_usb_pipe_needs_split(usb, pipe))
transaction->stage = CVMX_USB_STAGE_SETUP_SPLIT_COMPLETE;
else {
- cvmx_usb_control_header_t *header = cvmx_phys_to_ptr(transaction->control_header);
+ union cvmx_usb_control_header *header =
+ cvmx_phys_to_ptr(transaction->control_header);
if (header->s.length)
transaction->stage = CVMX_USB_STAGE_DATA;
else
@@ -2893,7 +2896,8 @@ static int __cvmx_usb_poll_channel(struct cvmx_usb_internal_state *usb, int chan
break;
case CVMX_USB_STAGE_SETUP_SPLIT_COMPLETE:
{
- cvmx_usb_control_header_t *header = cvmx_phys_to_ptr(transaction->control_header);
+ union cvmx_usb_control_header *header =
+ cvmx_phys_to_ptr(transaction->control_header);
if (header->s.length)
transaction->stage = CVMX_USB_STAGE_DATA;
else
diff --git a/drivers/staging/octeon-usb/cvmx-usb.h b/drivers/staging/octeon-usb/cvmx-usb.h
index bd6a2fb07489..8bf36966ef15 100644
--- a/drivers/staging/octeon-usb/cvmx-usb.h
+++ b/drivers/staging/octeon-usb/cvmx-usb.h
@@ -335,20 +335,25 @@ struct cvmx_usb_port_status {
};
/**
- * This is the structure of a Control packet header
+ * union cvmx_usb_control_header - the structure of a Control packet header
+ *
+ * @s.request_type: Bit 7 tells the direction: 1=IN, 0=OUT
+ * @s.request The standard usb request to make
+ * @s.value Value parameter for the request in little endian format
+ * @s.index Index for the request in little endian format
+ * @s.length Length of the data associated with this request in
+ * little endian format
*/
-typedef union
-{
- uint64_t u64;
- struct
- {
- uint64_t request_type : 8; /**< Bit 7 tells the direction: 1=IN, 0=OUT */
- uint64_t request : 8; /**< The standard usb request to make */
- uint64_t value : 16; /**< Value parameter for the request in little endian format */
- uint64_t index : 16; /**< Index for the request in little endian format */
- uint64_t length : 16; /**< Length of the data associated with this request in little endian format */
- } s;
-} cvmx_usb_control_header_t;
+union cvmx_usb_control_header {
+ uint64_t u64;
+ struct {
+ uint64_t request_type : 8;
+ uint64_t request : 8;
+ uint64_t value : 16;
+ uint64_t index : 16;
+ uint64_t length : 16;
+ } s;
+};
/**
* struct cvmx_usb_iso_packet - descriptor for Isochronous packets