Commit bedc0c31 authored by Arvid Brodin's avatar Arvid Brodin Committed by Greg Kroah-Hartman

usb/isp1760: Move to native-endian ptds

This helps users with platform-bus-connected isp176xs, big-endian cpu,
and missing byteswapping on the data bus. It does so by collecting all
SW byteswaps in one place and also fixes a bug with non-32-bit io
transfers on this hardware, where payload has to be byteswapped
instead of ptds.
Signed-off-by: default avatarArvid Brodin <arvid.brodin@enea.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 6d42fcdb
This diff is collapsed.
...@@ -84,30 +84,27 @@ void deinit_kmem_cache(void); ...@@ -84,30 +84,27 @@ void deinit_kmem_cache(void);
#define HC_INT_IRQ_MASK_AND_REG 0x328 #define HC_INT_IRQ_MASK_AND_REG 0x328
#define HC_ATL_IRQ_MASK_AND_REG 0x32C #define HC_ATL_IRQ_MASK_AND_REG 0x32C
/* Register sets */
#define HC_BEGIN_OF_ATL 0x0c00
#define HC_BEGIN_OF_INT 0x0800
#define HC_BEGIN_OF_ISO 0x0400
#define HC_BEGIN_OF_PAYLOAD 0x1000
/* urb state*/ /* urb state*/
#define DELETE_URB (0x0008) #define DELETE_URB (0x0008)
#define NO_TRANSFER_ACTIVE (0xffffffff) #define NO_TRANSFER_ACTIVE (0xffffffff)
#define ATL_REGS_OFFSET (0xc00) /* Philips Proprietary Transfer Descriptor (PTD) */
#define INT_REGS_OFFSET (0x800) typedef __u32 __bitwise __dw;
/* Philips Transfer Descriptor (PTD) */
struct ptd { struct ptd {
__le32 dw0; __dw dw0;
__le32 dw1; __dw dw1;
__le32 dw2; __dw dw2;
__le32 dw3; __dw dw3;
__le32 dw4; __dw dw4;
__le32 dw5; __dw dw5;
__le32 dw6; __dw dw6;
__le32 dw7; __dw dw7;
}; };
#define PTD_OFFSET 0x0400
#define ISO_PTD_OFFSET 0x0400
#define INT_PTD_OFFSET 0x0800
#define ATL_PTD_OFFSET 0x0c00
#define PAYLOAD_OFFSET 0x1000
struct inter_packet_info { struct inter_packet_info {
void *data_buffer; void *data_buffer;
......
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