Commit 47509e4a authored by Aaro Koskinen's avatar Aaro Koskinen Committed by Greg Kroah-Hartman

staging: octeon-usb: cvmx_usb_control_header_t -> union cvmx_usb_control_header

Replace cvmx_usb_control_header_t with union cvmx_usb_control_header.
Signed-off-by: default avatarAaro Koskinen <aaro.koskinen@iki.fi>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 2bf249e4
...@@ -1448,7 +1448,8 @@ static void __cvmx_usb_start_channel_control(struct cvmx_usb_internal_state *usb ...@@ -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_pipe *pipe)
{ {
struct cvmx_usb_transaction *transaction = pipe->head; 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 bytes_to_transfer = transaction->buffer_length - transaction->actual_bytes;
int packets_to_transfer; int packets_to_transfer;
cvmx_usbcx_hctsizx_t usbc_hctsiz; cvmx_usbcx_hctsizx_t usbc_hctsiz;
...@@ -2319,7 +2320,8 @@ int cvmx_usb_submit_control(struct cvmx_usb_state *state, int pipe_handle, ...@@ -2319,7 +2320,8 @@ int cvmx_usb_submit_control(struct cvmx_usb_state *state, int pipe_handle,
{ {
int submit_handle; int submit_handle;
struct cvmx_usb_internal_state *usb = (struct cvmx_usb_internal_state *)state; 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 */ /* Pipe handle checking is done later in a common place */
if (unlikely(!control_header)) if (unlikely(!control_header))
...@@ -2884,7 +2886,8 @@ static int __cvmx_usb_poll_channel(struct cvmx_usb_internal_state *usb, int chan ...@@ -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)) if (__cvmx_usb_pipe_needs_split(usb, pipe))
transaction->stage = CVMX_USB_STAGE_SETUP_SPLIT_COMPLETE; transaction->stage = CVMX_USB_STAGE_SETUP_SPLIT_COMPLETE;
else { 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) if (header->s.length)
transaction->stage = CVMX_USB_STAGE_DATA; transaction->stage = CVMX_USB_STAGE_DATA;
else else
...@@ -2893,7 +2896,8 @@ static int __cvmx_usb_poll_channel(struct cvmx_usb_internal_state *usb, int chan ...@@ -2893,7 +2896,8 @@ static int __cvmx_usb_poll_channel(struct cvmx_usb_internal_state *usb, int chan
break; break;
case CVMX_USB_STAGE_SETUP_SPLIT_COMPLETE: 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) if (header->s.length)
transaction->stage = CVMX_USB_STAGE_DATA; transaction->stage = CVMX_USB_STAGE_DATA;
else else
......
...@@ -335,20 +335,25 @@ struct cvmx_usb_port_status { ...@@ -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 union cvmx_usb_control_header {
{ uint64_t u64;
uint64_t u64; struct {
struct uint64_t request_type : 8;
{ uint64_t request : 8;
uint64_t request_type : 8; /**< Bit 7 tells the direction: 1=IN, 0=OUT */ uint64_t value : 16;
uint64_t request : 8; /**< The standard usb request to make */ uint64_t index : 16;
uint64_t value : 16; /**< Value parameter for the request in little endian format */ uint64_t length : 16;
uint64_t index : 16; /**< Index for the request in little endian format */ } s;
uint64_t length : 16; /**< Length of the data associated with this request in little endian format */ };
} s;
} cvmx_usb_control_header_t;
/** /**
* struct cvmx_usb_iso_packet - descriptor for Isochronous packets * struct cvmx_usb_iso_packet - descriptor for Isochronous packets
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment