[PATCH] wireless/p54: Remove duplicated net2280 header

Subsystems: networking drivers (wireless), the rest

STALE4273d

4 messages, 2 authors, 2014-12-01 · open the first message on its own page

[PATCH] wireless/p54: Remove duplicated net2280 header

From: Ricardo Ribalda Delgado <hidden>
Date: 2014-11-24 10:19:58

The usb gadget driver net2280 has exported a header file with the
register definition of the net2280 chip.

Remove the custom/duplicated header file in favor of that header file
in include/linux

Signed-off-by: Ricardo Ribalda Delgado <redacted>
---
 drivers/net/wireless/p54/net2280.h | 451 -------------------------------------
 drivers/net/wireless/p54/p54usb.h  |  13 +-
 2 files changed, 12 insertions(+), 452 deletions(-)
 delete mode 100644 drivers/net/wireless/p54/net2280.h
diff --git a/drivers/net/wireless/p54/net2280.h b/drivers/net/wireless/p54/net2280.h
deleted file mode 100644
index aedfaf2..0000000
--- a/drivers/net/wireless/p54/net2280.h
+++ /dev/null
@@ -1,451 +0,0 @@
-#ifndef NET2280_H
-#define NET2280_H
-/*
- * NetChip 2280 high/full speed USB device controller.
- * Unlike many such controllers, this one talks PCI.
- */
-
-/*
- * Copyright (C) 2002 NetChip Technology, Inc. (http://www.netchip.com)
- * Copyright (C) 2003 David Brownell
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-/*-------------------------------------------------------------------------*/
-
-/* NET2280 MEMORY MAPPED REGISTERS
- *
- * The register layout came from the chip documentation, and the bit
- * number definitions were extracted from chip specification.
- *
- * Use the shift operator ('<<') to build bit masks, with readl/writel
- * to access the registers through PCI.
- */
-
-/* main registers, BAR0 + 0x0000 */
-struct net2280_regs {
-	/* offset 0x0000 */
-	__le32			devinit;
-#define LOCAL_CLOCK_FREQUENCY					8
-#define FORCE_PCI_RESET						7
-#define PCI_ID							6
-#define PCI_ENABLE						5
-#define FIFO_SOFT_RESET						4
-#define CFG_SOFT_RESET						3
-#define PCI_SOFT_RESET						2
-#define USB_SOFT_RESET						1
-#define M8051_RESET						0
-	__le32			eectl;
-#define EEPROM_ADDRESS_WIDTH					23
-#define EEPROM_CHIP_SELECT_ACTIVE				22
-#define EEPROM_PRESENT						21
-#define EEPROM_VALID						20
-#define EEPROM_BUSY						19
-#define EEPROM_CHIP_SELECT_ENABLE				18
-#define EEPROM_BYTE_READ_START					17
-#define EEPROM_BYTE_WRITE_START					16
-#define EEPROM_READ_DATA					8
-#define EEPROM_WRITE_DATA					0
-	__le32			eeclkfreq;
-	u32			_unused0;
-	/* offset 0x0010 */
-
-	__le32			pciirqenb0;	/* interrupt PCI master ... */
-#define SETUP_PACKET_INTERRUPT_ENABLE				7
-#define ENDPOINT_F_INTERRUPT_ENABLE				6
-#define ENDPOINT_E_INTERRUPT_ENABLE				5
-#define ENDPOINT_D_INTERRUPT_ENABLE				4
-#define ENDPOINT_C_INTERRUPT_ENABLE				3
-#define ENDPOINT_B_INTERRUPT_ENABLE				2
-#define ENDPOINT_A_INTERRUPT_ENABLE				1
-#define ENDPOINT_0_INTERRUPT_ENABLE				0
-	__le32			pciirqenb1;
-#define PCI_INTERRUPT_ENABLE					31
-#define POWER_STATE_CHANGE_INTERRUPT_ENABLE			27
-#define PCI_ARBITER_TIMEOUT_INTERRUPT_ENABLE			26
-#define PCI_PARITY_ERROR_INTERRUPT_ENABLE			25
-#define PCI_MASTER_ABORT_RECEIVED_INTERRUPT_ENABLE		20
-#define PCI_TARGET_ABORT_RECEIVED_INTERRUPT_ENABLE		19
-#define PCI_TARGET_ABORT_ASSERTED_INTERRUPT_ENABLE		18
-#define PCI_RETRY_ABORT_INTERRUPT_ENABLE			17
-#define PCI_MASTER_CYCLE_DONE_INTERRUPT_ENABLE			16
-#define GPIO_INTERRUPT_ENABLE					13
-#define DMA_D_INTERRUPT_ENABLE					12
-#define DMA_C_INTERRUPT_ENABLE					11
-#define DMA_B_INTERRUPT_ENABLE					10
-#define DMA_A_INTERRUPT_ENABLE					9
-#define EEPROM_DONE_INTERRUPT_ENABLE				8
-#define VBUS_INTERRUPT_ENABLE					7
-#define CONTROL_STATUS_INTERRUPT_ENABLE				6
-#define ROOT_PORT_RESET_INTERRUPT_ENABLE			4
-#define SUSPEND_REQUEST_INTERRUPT_ENABLE			3
-#define SUSPEND_REQUEST_CHANGE_INTERRUPT_ENABLE			2
-#define RESUME_INTERRUPT_ENABLE					1
-#define SOF_INTERRUPT_ENABLE					0
-	__le32                  cpu_irqenb0;	/* ... or onboard 8051 */
-#define SETUP_PACKET_INTERRUPT_ENABLE				7
-#define ENDPOINT_F_INTERRUPT_ENABLE				6
-#define ENDPOINT_E_INTERRUPT_ENABLE				5
-#define ENDPOINT_D_INTERRUPT_ENABLE				4
-#define ENDPOINT_C_INTERRUPT_ENABLE				3
-#define ENDPOINT_B_INTERRUPT_ENABLE				2
-#define ENDPOINT_A_INTERRUPT_ENABLE				1
-#define ENDPOINT_0_INTERRUPT_ENABLE				0
-	__le32                  cpu_irqenb1;
-#define CPU_INTERRUPT_ENABLE					31
-#define POWER_STATE_CHANGE_INTERRUPT_ENABLE			27
-#define PCI_ARBITER_TIMEOUT_INTERRUPT_ENABLE			26
-#define PCI_PARITY_ERROR_INTERRUPT_ENABLE			25
-#define PCI_INTA_INTERRUPT_ENABLE				24
-#define PCI_PME_INTERRUPT_ENABLE				23
-#define PCI_SERR_INTERRUPT_ENABLE				22
-#define PCI_PERR_INTERRUPT_ENABLE				21
-#define PCI_MASTER_ABORT_RECEIVED_INTERRUPT_ENABLE		20
-#define PCI_TARGET_ABORT_RECEIVED_INTERRUPT_ENABLE		19
-#define PCI_RETRY_ABORT_INTERRUPT_ENABLE			17
-#define PCI_MASTER_CYCLE_DONE_INTERRUPT_ENABLE			16
-#define GPIO_INTERRUPT_ENABLE					13
-#define DMA_D_INTERRUPT_ENABLE					12
-#define DMA_C_INTERRUPT_ENABLE					11
-#define DMA_B_INTERRUPT_ENABLE					10
-#define DMA_A_INTERRUPT_ENABLE					9
-#define EEPROM_DONE_INTERRUPT_ENABLE				8
-#define VBUS_INTERRUPT_ENABLE					7
-#define CONTROL_STATUS_INTERRUPT_ENABLE				6
-#define ROOT_PORT_RESET_INTERRUPT_ENABLE			4
-#define SUSPEND_REQUEST_INTERRUPT_ENABLE			3
-#define SUSPEND_REQUEST_CHANGE_INTERRUPT_ENABLE			2
-#define RESUME_INTERRUPT_ENABLE					1
-#define SOF_INTERRUPT_ENABLE					0
-
-	/* offset 0x0020 */
-	u32			_unused1;
-	__le32			usbirqenb1;
-#define USB_INTERRUPT_ENABLE					31
-#define POWER_STATE_CHANGE_INTERRUPT_ENABLE			27
-#define PCI_ARBITER_TIMEOUT_INTERRUPT_ENABLE			26
-#define PCI_PARITY_ERROR_INTERRUPT_ENABLE			25
-#define PCI_INTA_INTERRUPT_ENABLE				24
-#define PCI_PME_INTERRUPT_ENABLE				23
-#define PCI_SERR_INTERRUPT_ENABLE				22
-#define PCI_PERR_INTERRUPT_ENABLE				21
-#define PCI_MASTER_ABORT_RECEIVED_INTERRUPT_ENABLE		20
-#define PCI_TARGET_ABORT_RECEIVED_INTERRUPT_ENABLE		19
-#define PCI_RETRY_ABORT_INTERRUPT_ENABLE			17
-#define PCI_MASTER_CYCLE_DONE_INTERRUPT_ENABLE			16
-#define GPIO_INTERRUPT_ENABLE					13
-#define DMA_D_INTERRUPT_ENABLE					12
-#define DMA_C_INTERRUPT_ENABLE					11
-#define DMA_B_INTERRUPT_ENABLE					10
-#define DMA_A_INTERRUPT_ENABLE					9
-#define EEPROM_DONE_INTERRUPT_ENABLE				8
-#define VBUS_INTERRUPT_ENABLE					7
-#define CONTROL_STATUS_INTERRUPT_ENABLE				6
-#define ROOT_PORT_RESET_INTERRUPT_ENABLE			4
-#define SUSPEND_REQUEST_INTERRUPT_ENABLE			3
-#define SUSPEND_REQUEST_CHANGE_INTERRUPT_ENABLE			2
-#define RESUME_INTERRUPT_ENABLE					1
-#define SOF_INTERRUPT_ENABLE					0
-	__le32			irqstat0;
-#define INTA_ASSERTED						12
-#define SETUP_PACKET_INTERRUPT					7
-#define ENDPOINT_F_INTERRUPT					6
-#define ENDPOINT_E_INTERRUPT					5
-#define ENDPOINT_D_INTERRUPT					4
-#define ENDPOINT_C_INTERRUPT					3
-#define ENDPOINT_B_INTERRUPT					2
-#define ENDPOINT_A_INTERRUPT					1
-#define ENDPOINT_0_INTERRUPT					0
-	__le32			irqstat1;
-#define POWER_STATE_CHANGE_INTERRUPT				27
-#define PCI_ARBITER_TIMEOUT_INTERRUPT				26
-#define PCI_PARITY_ERROR_INTERRUPT				25
-#define PCI_INTA_INTERRUPT					24
-#define PCI_PME_INTERRUPT					23
-#define PCI_SERR_INTERRUPT					22
-#define PCI_PERR_INTERRUPT					21
-#define PCI_MASTER_ABORT_RECEIVED_INTERRUPT			20
-#define PCI_TARGET_ABORT_RECEIVED_INTERRUPT			19
-#define PCI_RETRY_ABORT_INTERRUPT				17
-#define PCI_MASTER_CYCLE_DONE_INTERRUPT				16
-#define GPIO_INTERRUPT						13
-#define DMA_D_INTERRUPT						12
-#define DMA_C_INTERRUPT						11
-#define DMA_B_INTERRUPT						10
-#define DMA_A_INTERRUPT						9
-#define EEPROM_DONE_INTERRUPT					8
-#define VBUS_INTERRUPT						7
-#define CONTROL_STATUS_INTERRUPT				6
-#define ROOT_PORT_RESET_INTERRUPT				4
-#define SUSPEND_REQUEST_INTERRUPT				3
-#define SUSPEND_REQUEST_CHANGE_INTERRUPT			2
-#define RESUME_INTERRUPT					1
-#define SOF_INTERRUPT						0
-	/* offset 0x0030 */
-	__le32			idxaddr;
-	__le32			idxdata;
-	__le32			fifoctl;
-#define PCI_BASE2_RANGE						16
-#define IGNORE_FIFO_AVAILABILITY				3
-#define PCI_BASE2_SELECT					2
-#define FIFO_CONFIGURATION_SELECT				0
-	u32			_unused2;
-	/* offset 0x0040 */
-	__le32			memaddr;
-#define START							28
-#define DIRECTION						27
-#define FIFO_DIAGNOSTIC_SELECT					24
-#define MEMORY_ADDRESS						0
-	__le32			memdata0;
-	__le32			memdata1;
-	u32			_unused3;
-	/* offset 0x0050 */
-	__le32			gpioctl;
-#define GPIO3_LED_SELECT					12
-#define GPIO3_INTERRUPT_ENABLE					11
-#define GPIO2_INTERRUPT_ENABLE					10
-#define GPIO1_INTERRUPT_ENABLE					9
-#define GPIO0_INTERRUPT_ENABLE					8
-#define GPIO3_OUTPUT_ENABLE					7
-#define GPIO2_OUTPUT_ENABLE					6
-#define GPIO1_OUTPUT_ENABLE					5
-#define GPIO0_OUTPUT_ENABLE					4
-#define GPIO3_DATA						3
-#define GPIO2_DATA						2
-#define GPIO1_DATA						1
-#define GPIO0_DATA						0
-	__le32			gpiostat;
-#define GPIO3_INTERRUPT						3
-#define GPIO2_INTERRUPT						2
-#define GPIO1_INTERRUPT						1
-#define GPIO0_INTERRUPT						0
-} __packed;
-
-/* usb control, BAR0 + 0x0080 */
-struct net2280_usb_regs {
-	/* offset 0x0080 */
-	__le32			stdrsp;
-#define STALL_UNSUPPORTED_REQUESTS				31
-#define SET_TEST_MODE						16
-#define GET_OTHER_SPEED_CONFIGURATION				15
-#define GET_DEVICE_QUALIFIER					14
-#define SET_ADDRESS						13
-#define ENDPOINT_SET_CLEAR_HALT					12
-#define DEVICE_SET_CLEAR_DEVICE_REMOTE_WAKEUP			11
-#define GET_STRING_DESCRIPTOR_2					10
-#define GET_STRING_DESCRIPTOR_1					9
-#define GET_STRING_DESCRIPTOR_0					8
-#define GET_SET_INTERFACE					6
-#define GET_SET_CONFIGURATION					5
-#define GET_CONFIGURATION_DESCRIPTOR				4
-#define GET_DEVICE_DESCRIPTOR					3
-#define GET_ENDPOINT_STATUS					2
-#define GET_INTERFACE_STATUS					1
-#define GET_DEVICE_STATUS					0
-	__le32			prodvendid;
-#define     PRODUCT_ID						16
-#define     VENDOR_ID						0
-	__le32			relnum;
-	__le32			usbctl;
-#define SERIAL_NUMBER_INDEX					16
-#define PRODUCT_ID_STRING_ENABLE				13
-#define VENDOR_ID_STRING_ENABLE					12
-#define USB_ROOT_PORT_WAKEUP_ENABLE				11
-#define VBUS_PIN						10
-#define TIMED_DISCONNECT					9
-#define SUSPEND_IMMEDIATELY					7
-#define SELF_POWERED_USB_DEVICE					6
-#define REMOTE_WAKEUP_SUPPORT					5
-#define PME_POLARITY						4
-#define USB_DETECT_ENABLE					3
-#define PME_WAKEUP_ENABLE					2
-#define DEVICE_REMOTE_WAKEUP_ENABLE				1
-#define SELF_POWERED_STATUS					0
-	/* offset 0x0090 */
-	__le32			usbstat;
-#define HIGH_SPEED						7
-#define FULL_SPEED						6
-#define GENERATE_RESUME						5
-#define GENERATE_DEVICE_REMOTE_WAKEUP				4
-	__le32			xcvrdiag;
-#define FORCE_HIGH_SPEED_MODE					31
-#define FORCE_FULL_SPEED_MODE					30
-#define USB_TEST_MODE						24
-#define LINE_STATE						16
-#define TRANSCEIVER_OPERATION_MODE				2
-#define TRANSCEIVER_SELECT					1
-#define TERMINATION_SELECT					0
-	__le32			setup0123;
-	__le32			setup4567;
-	/* offset 0x0090 */
-	u32			_unused0;
-	__le32			ouraddr;
-#define FORCE_IMMEDIATE						7
-#define OUR_USB_ADDRESS						0
-	__le32			ourconfig;
-} __packed;
-
-/* pci control, BAR0 + 0x0100 */
-struct net2280_pci_regs {
-	/* offset 0x0100 */
-	__le32			pcimstctl;
-#define PCI_ARBITER_PARK_SELECT					13
-#define PCI_MULTI LEVEL_ARBITER					12
-#define PCI_RETRY_ABORT_ENABLE					11
-#define DMA_MEMORY_WRITE_AND_INVALIDATE_ENABLE			10
-#define DMA_READ_MULTIPLE_ENABLE				9
-#define DMA_READ_LINE_ENABLE					8
-#define PCI_MASTER_COMMAND_SELECT				6
-#define		MEM_READ_OR_WRITE				0
-#define		IO_READ_OR_WRITE				1
-#define		CFG_READ_OR_WRITE				2
-#define PCI_MASTER_START					5
-#define PCI_MASTER_READ_WRITE					4
-#define		PCI_MASTER_WRITE				0
-#define		PCI_MASTER_READ					1
-#define PCI_MASTER_BYTE_WRITE_ENABLES				0
-	__le32			pcimstaddr;
-	__le32			pcimstdata;
-	__le32			pcimststat;
-#define PCI_ARBITER_CLEAR					2
-#define PCI_EXTERNAL_ARBITER					1
-#define PCI_HOST_MODE						0
-} __packed;
-
-/* dma control, BAR0 + 0x0180 ... array of four structs like this,
- * for channels 0..3.  see also struct net2280_dma:  descriptor
- * that can be loaded into some of these registers.
- */
-struct net2280_dma_regs {	/* [11.7] */
-	/* offset 0x0180, 0x01a0, 0x01c0, 0x01e0, */
-	__le32			dmactl;
-#define DMA_SCATTER_GATHER_DONE_INTERRUPT_ENABLE		25
-#define DMA_CLEAR_COUNT_ENABLE					21
-#define DESCRIPTOR_POLLING_RATE					19
-#define		POLL_CONTINUOUS					0
-#define		POLL_1_USEC					1
-#define		POLL_100_USEC					2
-#define		POLL_1_MSEC					3
-#define DMA_VALID_BIT_POLLING_ENABLE				18
-#define DMA_VALID_BIT_ENABLE					17
-#define DMA_SCATTER_GATHER_ENABLE				16
-#define DMA_OUT_AUTO_START_ENABLE				4
-#define DMA_PREEMPT_ENABLE					3
-#define DMA_FIFO_VALIDATE					2
-#define DMA_ENABLE						1
-#define DMA_ADDRESS_HOLD					0
-	__le32			dmastat;
-#define DMA_SCATTER_GATHER_DONE_INTERRUPT			25
-#define DMA_TRANSACTION_DONE_INTERRUPT				24
-#define DMA_ABORT						1
-#define DMA_START						0
-	u32			_unused0[2];
-	/* offset 0x0190, 0x01b0, 0x01d0, 0x01f0, */
-	__le32                  dmacount;
-#define VALID_BIT						31
-#define DMA_DIRECTION						30
-#define DMA_DONE_INTERRUPT_ENABLE				29
-#define END_OF_CHAIN						28
-#define DMA_BYTE_COUNT_MASK					((1<<24)-1)
-#define DMA_BYTE_COUNT						0
-	__le32			dmaaddr;
-	__le32			dmadesc;
-	u32			_unused1;
-} __packed;
-
-/* dedicated endpoint registers, BAR0 + 0x0200 */
-
-struct net2280_dep_regs {	/* [11.8] */
-	/* offset 0x0200, 0x0210, 0x220, 0x230, 0x240 */
-	__le32			dep_cfg;
-	/* offset 0x0204, 0x0214, 0x224, 0x234, 0x244 */
-	__le32			dep_rsp;
-	u32			_unused[2];
-} __packed;
-
-/* configurable endpoint registers, BAR0 + 0x0300 ... array of seven structs
- * like this, for ep0 then the configurable endpoints A..F
- * ep0 reserved for control; E and F have only 64 bytes of fifo
- */
-struct net2280_ep_regs {	/* [11.9] */
-	/* offset 0x0300, 0x0320, 0x0340, 0x0360, 0x0380, 0x03a0, 0x03c0 */
-	__le32			ep_cfg;
-#define ENDPOINT_BYTE_COUNT					16
-#define ENDPOINT_ENABLE						10
-#define ENDPOINT_TYPE						8
-#define ENDPOINT_DIRECTION					7
-#define ENDPOINT_NUMBER						0
-	__le32			ep_rsp;
-#define SET_NAK_OUT_PACKETS					15
-#define SET_EP_HIDE_STATUS_PHASE				14
-#define SET_EP_FORCE_CRC_ERROR					13
-#define SET_INTERRUPT_MODE					12
-#define SET_CONTROL_STATUS_PHASE_HANDSHAKE			11
-#define SET_NAK_OUT_PACKETS_MODE				10
-#define SET_ENDPOINT_TOGGLE					9
-#define SET_ENDPOINT_HALT					8
-#define CLEAR_NAK_OUT_PACKETS					7
-#define CLEAR_EP_HIDE_STATUS_PHASE				6
-#define CLEAR_EP_FORCE_CRC_ERROR				5
-#define CLEAR_INTERRUPT_MODE					4
-#define CLEAR_CONTROL_STATUS_PHASE_HANDSHAKE			3
-#define CLEAR_NAK_OUT_PACKETS_MODE				2
-#define CLEAR_ENDPOINT_TOGGLE					1
-#define CLEAR_ENDPOINT_HALT					0
-	__le32			ep_irqenb;
-#define SHORT_PACKET_OUT_DONE_INTERRUPT_ENABLE			6
-#define SHORT_PACKET_TRANSFERRED_INTERRUPT_ENABLE		5
-#define DATA_PACKET_RECEIVED_INTERRUPT_ENABLE			3
-#define DATA_PACKET_TRANSMITTED_INTERRUPT_ENABLE		2
-#define DATA_OUT_PING_TOKEN_INTERRUPT_ENABLE			1
-#define DATA_IN_TOKEN_INTERRUPT_ENABLE				0
-	__le32			ep_stat;
-#define FIFO_VALID_COUNT					24
-#define HIGH_BANDWIDTH_OUT_TRANSACTION_PID			22
-#define TIMEOUT							21
-#define USB_STALL_SENT						20
-#define USB_IN_NAK_SENT						19
-#define USB_IN_ACK_RCVD						18
-#define USB_OUT_PING_NAK_SENT					17
-#define USB_OUT_ACK_SENT					16
-#define FIFO_OVERFLOW						13
-#define FIFO_UNDERFLOW						12
-#define FIFO_FULL						11
-#define FIFO_EMPTY						10
-#define FIFO_FLUSH						9
-#define SHORT_PACKET_OUT_DONE_INTERRUPT				6
-#define SHORT_PACKET_TRANSFERRED_INTERRUPT			5
-#define NAK_OUT_PACKETS						4
-#define DATA_PACKET_RECEIVED_INTERRUPT				3
-#define DATA_PACKET_TRANSMITTED_INTERRUPT			2
-#define DATA_OUT_PING_TOKEN_INTERRUPT				1
-#define DATA_IN_TOKEN_INTERRUPT					0
-	/* offset 0x0310, 0x0330, 0x0350, 0x0370, 0x0390, 0x03b0, 0x03d0 */
-	__le32			ep_avail;
-	__le32			ep_data;
-	u32			_unused0[2];
-} __packed;
-
-struct net2280_reg_write {
-	__le16 port;
-	__le32 addr;
-	__le32 val;
-} __packed;
-
-struct net2280_reg_read {
-	__le16 port;
-	__le32 addr;
-} __packed;
-#endif /* NET2280_H */
diff --git a/drivers/net/wireless/p54/p54usb.h b/drivers/net/wireless/p54/p54usb.h
index d273be7..a5f5f0f 100644
--- a/drivers/net/wireless/p54/p54usb.h
+++ b/drivers/net/wireless/p54/p54usb.h
@@ -16,7 +16,7 @@
 
 /* for isl3886 register definitions used on ver 1 devices */
 #include "p54pci.h"
-#include "net2280.h"
+#include <linux/usb/net2280.h>
 
 /* pci */
 #define NET2280_BASE		0x10000000
@@ -93,6 +93,17 @@ enum net2280_op_type {
 	NET2280_DEV_CFG_U16	= 0x0883
 };
 
+struct net2280_reg_write {
+	__le16 port;
+	__le32 addr;
+	__le32 val;
+} __packed;
+
+struct net2280_reg_read {
+	__le16 port;
+	__le32 addr;
+} __packed;
+
 #define P54U_FW_BLOCK 2048
 
 #define X2_SIGNATURE "x2  "
-- 
2.1.3

Re: [PATCH] wireless/p54: Remove duplicated net2280 header

From: Ricardo Ribalda Delgado <hidden>
Date: 2014-12-01 10:47:10

David Miller has marked the patch as "Awaiting Upstream", which I
think means that it should be merged through the wireless tree.

Any comment from there?

On Mon, Nov 24, 2014 at 11:19 AM, Ricardo Ribalda Delgado
[off-list ref] wrote:
quoted hunk
The usb gadget driver net2280 has exported a header file with the
register definition of the net2280 chip.

Remove the custom/duplicated header file in favor of that header file
in include/linux

Signed-off-by: Ricardo Ribalda Delgado <redacted>
---
 drivers/net/wireless/p54/net2280.h | 451 -------------------------------------
 drivers/net/wireless/p54/p54usb.h  |  13 +-
 2 files changed, 12 insertions(+), 452 deletions(-)
 delete mode 100644 drivers/net/wireless/p54/net2280.h
diff --git a/drivers/net/wireless/p54/net2280.h b/drivers/net/wireless/p54/net2280.h
deleted file mode 100644
index aedfaf2..0000000
--- a/drivers/net/wireless/p54/net2280.h
+++ /dev/null
@@ -1,451 +0,0 @@
-#ifndef NET2280_H
-#define NET2280_H
-/*
- * NetChip 2280 high/full speed USB device controller.
- * Unlike many such controllers, this one talks PCI.
- */
-
-/*
- * Copyright (C) 2002 NetChip Technology, Inc. (http://www.netchip.com)
- * Copyright (C) 2003 David Brownell
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-/*-------------------------------------------------------------------------*/
-
-/* NET2280 MEMORY MAPPED REGISTERS
- *
- * The register layout came from the chip documentation, and the bit
- * number definitions were extracted from chip specification.
- *
- * Use the shift operator ('<<') to build bit masks, with readl/writel
- * to access the registers through PCI.
- */
-
-/* main registers, BAR0 + 0x0000 */
-struct net2280_regs {
-       /* offset 0x0000 */
-       __le32                  devinit;
-#define LOCAL_CLOCK_FREQUENCY                                  8
-#define FORCE_PCI_RESET                                                7
-#define PCI_ID                                                 6
-#define PCI_ENABLE                                             5
-#define FIFO_SOFT_RESET                                                4
-#define CFG_SOFT_RESET                                         3
-#define PCI_SOFT_RESET                                         2
-#define USB_SOFT_RESET                                         1
-#define M8051_RESET                                            0
-       __le32                  eectl;
-#define EEPROM_ADDRESS_WIDTH                                   23
-#define EEPROM_CHIP_SELECT_ACTIVE                              22
-#define EEPROM_PRESENT                                         21
-#define EEPROM_VALID                                           20
-#define EEPROM_BUSY                                            19
-#define EEPROM_CHIP_SELECT_ENABLE                              18
-#define EEPROM_BYTE_READ_START                                 17
-#define EEPROM_BYTE_WRITE_START                                        16
-#define EEPROM_READ_DATA                                       8
-#define EEPROM_WRITE_DATA                                      0
-       __le32                  eeclkfreq;
-       u32                     _unused0;
-       /* offset 0x0010 */
-
-       __le32                  pciirqenb0;     /* interrupt PCI master ... */
-#define SETUP_PACKET_INTERRUPT_ENABLE                          7
-#define ENDPOINT_F_INTERRUPT_ENABLE                            6
-#define ENDPOINT_E_INTERRUPT_ENABLE                            5
-#define ENDPOINT_D_INTERRUPT_ENABLE                            4
-#define ENDPOINT_C_INTERRUPT_ENABLE                            3
-#define ENDPOINT_B_INTERRUPT_ENABLE                            2
-#define ENDPOINT_A_INTERRUPT_ENABLE                            1
-#define ENDPOINT_0_INTERRUPT_ENABLE                            0
-       __le32                  pciirqenb1;
-#define PCI_INTERRUPT_ENABLE                                   31
-#define POWER_STATE_CHANGE_INTERRUPT_ENABLE                    27
-#define PCI_ARBITER_TIMEOUT_INTERRUPT_ENABLE                   26
-#define PCI_PARITY_ERROR_INTERRUPT_ENABLE                      25
-#define PCI_MASTER_ABORT_RECEIVED_INTERRUPT_ENABLE             20
-#define PCI_TARGET_ABORT_RECEIVED_INTERRUPT_ENABLE             19
-#define PCI_TARGET_ABORT_ASSERTED_INTERRUPT_ENABLE             18
-#define PCI_RETRY_ABORT_INTERRUPT_ENABLE                       17
-#define PCI_MASTER_CYCLE_DONE_INTERRUPT_ENABLE                 16
-#define GPIO_INTERRUPT_ENABLE                                  13
-#define DMA_D_INTERRUPT_ENABLE                                 12
-#define DMA_C_INTERRUPT_ENABLE                                 11
-#define DMA_B_INTERRUPT_ENABLE                                 10
-#define DMA_A_INTERRUPT_ENABLE                                 9
-#define EEPROM_DONE_INTERRUPT_ENABLE                           8
-#define VBUS_INTERRUPT_ENABLE                                  7
-#define CONTROL_STATUS_INTERRUPT_ENABLE                                6
-#define ROOT_PORT_RESET_INTERRUPT_ENABLE                       4
-#define SUSPEND_REQUEST_INTERRUPT_ENABLE                       3
-#define SUSPEND_REQUEST_CHANGE_INTERRUPT_ENABLE                        2
-#define RESUME_INTERRUPT_ENABLE                                        1
-#define SOF_INTERRUPT_ENABLE                                   0
-       __le32                  cpu_irqenb0;    /* ... or onboard 8051 */
-#define SETUP_PACKET_INTERRUPT_ENABLE                          7
-#define ENDPOINT_F_INTERRUPT_ENABLE                            6
-#define ENDPOINT_E_INTERRUPT_ENABLE                            5
-#define ENDPOINT_D_INTERRUPT_ENABLE                            4
-#define ENDPOINT_C_INTERRUPT_ENABLE                            3
-#define ENDPOINT_B_INTERRUPT_ENABLE                            2
-#define ENDPOINT_A_INTERRUPT_ENABLE                            1
-#define ENDPOINT_0_INTERRUPT_ENABLE                            0
-       __le32                  cpu_irqenb1;
-#define CPU_INTERRUPT_ENABLE                                   31
-#define POWER_STATE_CHANGE_INTERRUPT_ENABLE                    27
-#define PCI_ARBITER_TIMEOUT_INTERRUPT_ENABLE                   26
-#define PCI_PARITY_ERROR_INTERRUPT_ENABLE                      25
-#define PCI_INTA_INTERRUPT_ENABLE                              24
-#define PCI_PME_INTERRUPT_ENABLE                               23
-#define PCI_SERR_INTERRUPT_ENABLE                              22
-#define PCI_PERR_INTERRUPT_ENABLE                              21
-#define PCI_MASTER_ABORT_RECEIVED_INTERRUPT_ENABLE             20
-#define PCI_TARGET_ABORT_RECEIVED_INTERRUPT_ENABLE             19
-#define PCI_RETRY_ABORT_INTERRUPT_ENABLE                       17
-#define PCI_MASTER_CYCLE_DONE_INTERRUPT_ENABLE                 16
-#define GPIO_INTERRUPT_ENABLE                                  13
-#define DMA_D_INTERRUPT_ENABLE                                 12
-#define DMA_C_INTERRUPT_ENABLE                                 11
-#define DMA_B_INTERRUPT_ENABLE                                 10
-#define DMA_A_INTERRUPT_ENABLE                                 9
-#define EEPROM_DONE_INTERRUPT_ENABLE                           8
-#define VBUS_INTERRUPT_ENABLE                                  7
-#define CONTROL_STATUS_INTERRUPT_ENABLE                                6
-#define ROOT_PORT_RESET_INTERRUPT_ENABLE                       4
-#define SUSPEND_REQUEST_INTERRUPT_ENABLE                       3
-#define SUSPEND_REQUEST_CHANGE_INTERRUPT_ENABLE                        2
-#define RESUME_INTERRUPT_ENABLE                                        1
-#define SOF_INTERRUPT_ENABLE                                   0
-
-       /* offset 0x0020 */
-       u32                     _unused1;
-       __le32                  usbirqenb1;
-#define USB_INTERRUPT_ENABLE                                   31
-#define POWER_STATE_CHANGE_INTERRUPT_ENABLE                    27
-#define PCI_ARBITER_TIMEOUT_INTERRUPT_ENABLE                   26
-#define PCI_PARITY_ERROR_INTERRUPT_ENABLE                      25
-#define PCI_INTA_INTERRUPT_ENABLE                              24
-#define PCI_PME_INTERRUPT_ENABLE                               23
-#define PCI_SERR_INTERRUPT_ENABLE                              22
-#define PCI_PERR_INTERRUPT_ENABLE                              21
-#define PCI_MASTER_ABORT_RECEIVED_INTERRUPT_ENABLE             20
-#define PCI_TARGET_ABORT_RECEIVED_INTERRUPT_ENABLE             19
-#define PCI_RETRY_ABORT_INTERRUPT_ENABLE                       17
-#define PCI_MASTER_CYCLE_DONE_INTERRUPT_ENABLE                 16
-#define GPIO_INTERRUPT_ENABLE                                  13
-#define DMA_D_INTERRUPT_ENABLE                                 12
-#define DMA_C_INTERRUPT_ENABLE                                 11
-#define DMA_B_INTERRUPT_ENABLE                                 10
-#define DMA_A_INTERRUPT_ENABLE                                 9
-#define EEPROM_DONE_INTERRUPT_ENABLE                           8
-#define VBUS_INTERRUPT_ENABLE                                  7
-#define CONTROL_STATUS_INTERRUPT_ENABLE                                6
-#define ROOT_PORT_RESET_INTERRUPT_ENABLE                       4
-#define SUSPEND_REQUEST_INTERRUPT_ENABLE                       3
-#define SUSPEND_REQUEST_CHANGE_INTERRUPT_ENABLE                        2
-#define RESUME_INTERRUPT_ENABLE                                        1
-#define SOF_INTERRUPT_ENABLE                                   0
-       __le32                  irqstat0;
-#define INTA_ASSERTED                                          12
-#define SETUP_PACKET_INTERRUPT                                 7
-#define ENDPOINT_F_INTERRUPT                                   6
-#define ENDPOINT_E_INTERRUPT                                   5
-#define ENDPOINT_D_INTERRUPT                                   4
-#define ENDPOINT_C_INTERRUPT                                   3
-#define ENDPOINT_B_INTERRUPT                                   2
-#define ENDPOINT_A_INTERRUPT                                   1
-#define ENDPOINT_0_INTERRUPT                                   0
-       __le32                  irqstat1;
-#define POWER_STATE_CHANGE_INTERRUPT                           27
-#define PCI_ARBITER_TIMEOUT_INTERRUPT                          26
-#define PCI_PARITY_ERROR_INTERRUPT                             25
-#define PCI_INTA_INTERRUPT                                     24
-#define PCI_PME_INTERRUPT                                      23
-#define PCI_SERR_INTERRUPT                                     22
-#define PCI_PERR_INTERRUPT                                     21
-#define PCI_MASTER_ABORT_RECEIVED_INTERRUPT                    20
-#define PCI_TARGET_ABORT_RECEIVED_INTERRUPT                    19
-#define PCI_RETRY_ABORT_INTERRUPT                              17
-#define PCI_MASTER_CYCLE_DONE_INTERRUPT                                16
-#define GPIO_INTERRUPT                                         13
-#define DMA_D_INTERRUPT                                                12
-#define DMA_C_INTERRUPT                                                11
-#define DMA_B_INTERRUPT                                                10
-#define DMA_A_INTERRUPT                                                9
-#define EEPROM_DONE_INTERRUPT                                  8
-#define VBUS_INTERRUPT                                         7
-#define CONTROL_STATUS_INTERRUPT                               6
-#define ROOT_PORT_RESET_INTERRUPT                              4
-#define SUSPEND_REQUEST_INTERRUPT                              3
-#define SUSPEND_REQUEST_CHANGE_INTERRUPT                       2
-#define RESUME_INTERRUPT                                       1
-#define SOF_INTERRUPT                                          0
-       /* offset 0x0030 */
-       __le32                  idxaddr;
-       __le32                  idxdata;
-       __le32                  fifoctl;
-#define PCI_BASE2_RANGE                                                16
-#define IGNORE_FIFO_AVAILABILITY                               3
-#define PCI_BASE2_SELECT                                       2
-#define FIFO_CONFIGURATION_SELECT                              0
-       u32                     _unused2;
-       /* offset 0x0040 */
-       __le32                  memaddr;
-#define START                                                  28
-#define DIRECTION                                              27
-#define FIFO_DIAGNOSTIC_SELECT                                 24
-#define MEMORY_ADDRESS                                         0
-       __le32                  memdata0;
-       __le32                  memdata1;
-       u32                     _unused3;
-       /* offset 0x0050 */
-       __le32                  gpioctl;
-#define GPIO3_LED_SELECT                                       12
-#define GPIO3_INTERRUPT_ENABLE                                 11
-#define GPIO2_INTERRUPT_ENABLE                                 10
-#define GPIO1_INTERRUPT_ENABLE                                 9
-#define GPIO0_INTERRUPT_ENABLE                                 8
-#define GPIO3_OUTPUT_ENABLE                                    7
-#define GPIO2_OUTPUT_ENABLE                                    6
-#define GPIO1_OUTPUT_ENABLE                                    5
-#define GPIO0_OUTPUT_ENABLE                                    4
-#define GPIO3_DATA                                             3
-#define GPIO2_DATA                                             2
-#define GPIO1_DATA                                             1
-#define GPIO0_DATA                                             0
-       __le32                  gpiostat;
-#define GPIO3_INTERRUPT                                                3
-#define GPIO2_INTERRUPT                                                2
-#define GPIO1_INTERRUPT                                                1
-#define GPIO0_INTERRUPT                                                0
-} __packed;
-
-/* usb control, BAR0 + 0x0080 */
-struct net2280_usb_regs {
-       /* offset 0x0080 */
-       __le32                  stdrsp;
-#define STALL_UNSUPPORTED_REQUESTS                             31
-#define SET_TEST_MODE                                          16
-#define GET_OTHER_SPEED_CONFIGURATION                          15
-#define GET_DEVICE_QUALIFIER                                   14
-#define SET_ADDRESS                                            13
-#define ENDPOINT_SET_CLEAR_HALT                                        12
-#define DEVICE_SET_CLEAR_DEVICE_REMOTE_WAKEUP                  11
-#define GET_STRING_DESCRIPTOR_2                                        10
-#define GET_STRING_DESCRIPTOR_1                                        9
-#define GET_STRING_DESCRIPTOR_0                                        8
-#define GET_SET_INTERFACE                                      6
-#define GET_SET_CONFIGURATION                                  5
-#define GET_CONFIGURATION_DESCRIPTOR                           4
-#define GET_DEVICE_DESCRIPTOR                                  3
-#define GET_ENDPOINT_STATUS                                    2
-#define GET_INTERFACE_STATUS                                   1
-#define GET_DEVICE_STATUS                                      0
-       __le32                  prodvendid;
-#define     PRODUCT_ID                                         16
-#define     VENDOR_ID                                          0
-       __le32                  relnum;
-       __le32                  usbctl;
-#define SERIAL_NUMBER_INDEX                                    16
-#define PRODUCT_ID_STRING_ENABLE                               13
-#define VENDOR_ID_STRING_ENABLE                                        12
-#define USB_ROOT_PORT_WAKEUP_ENABLE                            11
-#define VBUS_PIN                                               10
-#define TIMED_DISCONNECT                                       9
-#define SUSPEND_IMMEDIATELY                                    7
-#define SELF_POWERED_USB_DEVICE                                        6
-#define REMOTE_WAKEUP_SUPPORT                                  5
-#define PME_POLARITY                                           4
-#define USB_DETECT_ENABLE                                      3
-#define PME_WAKEUP_ENABLE                                      2
-#define DEVICE_REMOTE_WAKEUP_ENABLE                            1
-#define SELF_POWERED_STATUS                                    0
-       /* offset 0x0090 */
-       __le32                  usbstat;
-#define HIGH_SPEED                                             7
-#define FULL_SPEED                                             6
-#define GENERATE_RESUME                                                5
-#define GENERATE_DEVICE_REMOTE_WAKEUP                          4
-       __le32                  xcvrdiag;
-#define FORCE_HIGH_SPEED_MODE                                  31
-#define FORCE_FULL_SPEED_MODE                                  30
-#define USB_TEST_MODE                                          24
-#define LINE_STATE                                             16
-#define TRANSCEIVER_OPERATION_MODE                             2
-#define TRANSCEIVER_SELECT                                     1
-#define TERMINATION_SELECT                                     0
-       __le32                  setup0123;
-       __le32                  setup4567;
-       /* offset 0x0090 */
-       u32                     _unused0;
-       __le32                  ouraddr;
-#define FORCE_IMMEDIATE                                                7
-#define OUR_USB_ADDRESS                                                0
-       __le32                  ourconfig;
-} __packed;
-
-/* pci control, BAR0 + 0x0100 */
-struct net2280_pci_regs {
-       /* offset 0x0100 */
-       __le32                  pcimstctl;
-#define PCI_ARBITER_PARK_SELECT                                        13
-#define PCI_MULTI LEVEL_ARBITER                                        12
-#define PCI_RETRY_ABORT_ENABLE                                 11
-#define DMA_MEMORY_WRITE_AND_INVALIDATE_ENABLE                 10
-#define DMA_READ_MULTIPLE_ENABLE                               9
-#define DMA_READ_LINE_ENABLE                                   8
-#define PCI_MASTER_COMMAND_SELECT                              6
-#define                MEM_READ_OR_WRITE                               0
-#define                IO_READ_OR_WRITE                                1
-#define                CFG_READ_OR_WRITE                               2
-#define PCI_MASTER_START                                       5
-#define PCI_MASTER_READ_WRITE                                  4
-#define                PCI_MASTER_WRITE                                0
-#define                PCI_MASTER_READ                                 1
-#define PCI_MASTER_BYTE_WRITE_ENABLES                          0
-       __le32                  pcimstaddr;
-       __le32                  pcimstdata;
-       __le32                  pcimststat;
-#define PCI_ARBITER_CLEAR                                      2
-#define PCI_EXTERNAL_ARBITER                                   1
-#define PCI_HOST_MODE                                          0
-} __packed;
-
-/* dma control, BAR0 + 0x0180 ... array of four structs like this,
- * for channels 0..3.  see also struct net2280_dma:  descriptor
- * that can be loaded into some of these registers.
- */
-struct net2280_dma_regs {      /* [11.7] */
-       /* offset 0x0180, 0x01a0, 0x01c0, 0x01e0, */
-       __le32                  dmactl;
-#define DMA_SCATTER_GATHER_DONE_INTERRUPT_ENABLE               25
-#define DMA_CLEAR_COUNT_ENABLE                                 21
-#define DESCRIPTOR_POLLING_RATE                                        19
-#define                POLL_CONTINUOUS                                 0
-#define                POLL_1_USEC                                     1
-#define                POLL_100_USEC                                   2
-#define                POLL_1_MSEC                                     3
-#define DMA_VALID_BIT_POLLING_ENABLE                           18
-#define DMA_VALID_BIT_ENABLE                                   17
-#define DMA_SCATTER_GATHER_ENABLE                              16
-#define DMA_OUT_AUTO_START_ENABLE                              4
-#define DMA_PREEMPT_ENABLE                                     3
-#define DMA_FIFO_VALIDATE                                      2
-#define DMA_ENABLE                                             1
-#define DMA_ADDRESS_HOLD                                       0
-       __le32                  dmastat;
-#define DMA_SCATTER_GATHER_DONE_INTERRUPT                      25
-#define DMA_TRANSACTION_DONE_INTERRUPT                         24
-#define DMA_ABORT                                              1
-#define DMA_START                                              0
-       u32                     _unused0[2];
-       /* offset 0x0190, 0x01b0, 0x01d0, 0x01f0, */
-       __le32                  dmacount;
-#define VALID_BIT                                              31
-#define DMA_DIRECTION                                          30
-#define DMA_DONE_INTERRUPT_ENABLE                              29
-#define END_OF_CHAIN                                           28
-#define DMA_BYTE_COUNT_MASK                                    ((1<<24)-1)
-#define DMA_BYTE_COUNT                                         0
-       __le32                  dmaaddr;
-       __le32                  dmadesc;
-       u32                     _unused1;
-} __packed;
-
-/* dedicated endpoint registers, BAR0 + 0x0200 */
-
-struct net2280_dep_regs {      /* [11.8] */
-       /* offset 0x0200, 0x0210, 0x220, 0x230, 0x240 */
-       __le32                  dep_cfg;
-       /* offset 0x0204, 0x0214, 0x224, 0x234, 0x244 */
-       __le32                  dep_rsp;
-       u32                     _unused[2];
-} __packed;
-
-/* configurable endpoint registers, BAR0 + 0x0300 ... array of seven structs
- * like this, for ep0 then the configurable endpoints A..F
- * ep0 reserved for control; E and F have only 64 bytes of fifo
- */
-struct net2280_ep_regs {       /* [11.9] */
-       /* offset 0x0300, 0x0320, 0x0340, 0x0360, 0x0380, 0x03a0, 0x03c0 */
-       __le32                  ep_cfg;
-#define ENDPOINT_BYTE_COUNT                                    16
-#define ENDPOINT_ENABLE                                                10
-#define ENDPOINT_TYPE                                          8
-#define ENDPOINT_DIRECTION                                     7
-#define ENDPOINT_NUMBER                                                0
-       __le32                  ep_rsp;
-#define SET_NAK_OUT_PACKETS                                    15
-#define SET_EP_HIDE_STATUS_PHASE                               14
-#define SET_EP_FORCE_CRC_ERROR                                 13
-#define SET_INTERRUPT_MODE                                     12
-#define SET_CONTROL_STATUS_PHASE_HANDSHAKE                     11
-#define SET_NAK_OUT_PACKETS_MODE                               10
-#define SET_ENDPOINT_TOGGLE                                    9
-#define SET_ENDPOINT_HALT                                      8
-#define CLEAR_NAK_OUT_PACKETS                                  7
-#define CLEAR_EP_HIDE_STATUS_PHASE                             6
-#define CLEAR_EP_FORCE_CRC_ERROR                               5
-#define CLEAR_INTERRUPT_MODE                                   4
-#define CLEAR_CONTROL_STATUS_PHASE_HANDSHAKE                   3
-#define CLEAR_NAK_OUT_PACKETS_MODE                             2
-#define CLEAR_ENDPOINT_TOGGLE                                  1
-#define CLEAR_ENDPOINT_HALT                                    0
-       __le32                  ep_irqenb;
-#define SHORT_PACKET_OUT_DONE_INTERRUPT_ENABLE                 6
-#define SHORT_PACKET_TRANSFERRED_INTERRUPT_ENABLE              5
-#define DATA_PACKET_RECEIVED_INTERRUPT_ENABLE                  3
-#define DATA_PACKET_TRANSMITTED_INTERRUPT_ENABLE               2
-#define DATA_OUT_PING_TOKEN_INTERRUPT_ENABLE                   1
-#define DATA_IN_TOKEN_INTERRUPT_ENABLE                         0
-       __le32                  ep_stat;
-#define FIFO_VALID_COUNT                                       24
-#define HIGH_BANDWIDTH_OUT_TRANSACTION_PID                     22
-#define TIMEOUT                                                        21
-#define USB_STALL_SENT                                         20
-#define USB_IN_NAK_SENT                                                19
-#define USB_IN_ACK_RCVD                                                18
-#define USB_OUT_PING_NAK_SENT                                  17
-#define USB_OUT_ACK_SENT                                       16
-#define FIFO_OVERFLOW                                          13
-#define FIFO_UNDERFLOW                                         12
-#define FIFO_FULL                                              11
-#define FIFO_EMPTY                                             10
-#define FIFO_FLUSH                                             9
-#define SHORT_PACKET_OUT_DONE_INTERRUPT                                6
-#define SHORT_PACKET_TRANSFERRED_INTERRUPT                     5
-#define NAK_OUT_PACKETS                                                4
-#define DATA_PACKET_RECEIVED_INTERRUPT                         3
-#define DATA_PACKET_TRANSMITTED_INTERRUPT                      2
-#define DATA_OUT_PING_TOKEN_INTERRUPT                          1
-#define DATA_IN_TOKEN_INTERRUPT                                        0
-       /* offset 0x0310, 0x0330, 0x0350, 0x0370, 0x0390, 0x03b0, 0x03d0 */
-       __le32                  ep_avail;
-       __le32                  ep_data;
-       u32                     _unused0[2];
-} __packed;
-
-struct net2280_reg_write {
-       __le16 port;
-       __le32 addr;
-       __le32 val;
-} __packed;
-
-struct net2280_reg_read {
-       __le16 port;
-       __le32 addr;
-} __packed;
-#endif /* NET2280_H */
diff --git a/drivers/net/wireless/p54/p54usb.h b/drivers/net/wireless/p54/p54usb.h
index d273be7..a5f5f0f 100644
--- a/drivers/net/wireless/p54/p54usb.h
+++ b/drivers/net/wireless/p54/p54usb.h
@@ -16,7 +16,7 @@

 /* for isl3886 register definitions used on ver 1 devices */
 #include "p54pci.h"
-#include "net2280.h"
+#include <linux/usb/net2280.h>

 /* pci */
 #define NET2280_BASE           0x10000000
@@ -93,6 +93,17 @@ enum net2280_op_type {
        NET2280_DEV_CFG_U16     = 0x0883
 };

+struct net2280_reg_write {
+       __le16 port;
+       __le32 addr;
+       __le32 val;
+} __packed;
+
+struct net2280_reg_read {
+       __le16 port;
+       __le32 addr;
+} __packed;
+
 #define P54U_FW_BLOCK 2048

 #define X2_SIGNATURE "x2  "
--
2.1.3


-- 
Ricardo Ribalda

Re: [PATCH] wireless/p54: Remove duplicated net2280 header

From: John W. Linville <hidden>
Date: 2014-12-01 20:00:16

Did you check the wireless-next tree's git logs?

commit a831f20b6d6460640b83644d1c1df6e7e8ca9f68
Author: Ricardo Ribalda Delgado [off-list ref]
Date:   Mon Nov 24 11:19:51 2014 +0100

    wireless/p54: Remove duplicated net2280 header
    
    The usb gadget driver net2280 has exported a header file with the
    register definition of the net2280 chip.
    
    Remove the custom/duplicated header file in favor of that header file
    in include/linux
    
    Signed-off-by: Ricardo Ribalda Delgado [off-list ref]
    Signed-off-by: John W. Linville [off-list ref]

On Mon, Dec 01, 2014 at 11:46:43AM +0100, Ricardo Ribalda Delgado wrote:
David Miller has marked the patch as "Awaiting Upstream", which I
think means that it should be merged through the wireless tree.

Any comment from there?

On Mon, Nov 24, 2014 at 11:19 AM, Ricardo Ribalda Delgado
[off-list ref] wrote:
quoted
The usb gadget driver net2280 has exported a header file with the
register definition of the net2280 chip.

Remove the custom/duplicated header file in favor of that header file
in include/linux

Signed-off-by: Ricardo Ribalda Delgado <redacted>
---
 drivers/net/wireless/p54/net2280.h | 451 -------------------------------------
 drivers/net/wireless/p54/p54usb.h  |  13 +-
 2 files changed, 12 insertions(+), 452 deletions(-)
 delete mode 100644 drivers/net/wireless/p54/net2280.h
diff --git a/drivers/net/wireless/p54/net2280.h b/drivers/net/wireless/p54/net2280.h
deleted file mode 100644
index aedfaf2..0000000
--- a/drivers/net/wireless/p54/net2280.h
+++ /dev/null
@@ -1,451 +0,0 @@
-#ifndef NET2280_H
-#define NET2280_H
-/*
- * NetChip 2280 high/full speed USB device controller.
- * Unlike many such controllers, this one talks PCI.
- */
-
-/*
- * Copyright (C) 2002 NetChip Technology, Inc. (http://www.netchip.com)
- * Copyright (C) 2003 David Brownell
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-/*-------------------------------------------------------------------------*/
-
-/* NET2280 MEMORY MAPPED REGISTERS
- *
- * The register layout came from the chip documentation, and the bit
- * number definitions were extracted from chip specification.
- *
- * Use the shift operator ('<<') to build bit masks, with readl/writel
- * to access the registers through PCI.
- */
-
-/* main registers, BAR0 + 0x0000 */
-struct net2280_regs {
-       /* offset 0x0000 */
-       __le32                  devinit;
-#define LOCAL_CLOCK_FREQUENCY                                  8
-#define FORCE_PCI_RESET                                                7
-#define PCI_ID                                                 6
-#define PCI_ENABLE                                             5
-#define FIFO_SOFT_RESET                                                4
-#define CFG_SOFT_RESET                                         3
-#define PCI_SOFT_RESET                                         2
-#define USB_SOFT_RESET                                         1
-#define M8051_RESET                                            0
-       __le32                  eectl;
-#define EEPROM_ADDRESS_WIDTH                                   23
-#define EEPROM_CHIP_SELECT_ACTIVE                              22
-#define EEPROM_PRESENT                                         21
-#define EEPROM_VALID                                           20
-#define EEPROM_BUSY                                            19
-#define EEPROM_CHIP_SELECT_ENABLE                              18
-#define EEPROM_BYTE_READ_START                                 17
-#define EEPROM_BYTE_WRITE_START                                        16
-#define EEPROM_READ_DATA                                       8
-#define EEPROM_WRITE_DATA                                      0
-       __le32                  eeclkfreq;
-       u32                     _unused0;
-       /* offset 0x0010 */
-
-       __le32                  pciirqenb0;     /* interrupt PCI master ... */
-#define SETUP_PACKET_INTERRUPT_ENABLE                          7
-#define ENDPOINT_F_INTERRUPT_ENABLE                            6
-#define ENDPOINT_E_INTERRUPT_ENABLE                            5
-#define ENDPOINT_D_INTERRUPT_ENABLE                            4
-#define ENDPOINT_C_INTERRUPT_ENABLE                            3
-#define ENDPOINT_B_INTERRUPT_ENABLE                            2
-#define ENDPOINT_A_INTERRUPT_ENABLE                            1
-#define ENDPOINT_0_INTERRUPT_ENABLE                            0
-       __le32                  pciirqenb1;
-#define PCI_INTERRUPT_ENABLE                                   31
-#define POWER_STATE_CHANGE_INTERRUPT_ENABLE                    27
-#define PCI_ARBITER_TIMEOUT_INTERRUPT_ENABLE                   26
-#define PCI_PARITY_ERROR_INTERRUPT_ENABLE                      25
-#define PCI_MASTER_ABORT_RECEIVED_INTERRUPT_ENABLE             20
-#define PCI_TARGET_ABORT_RECEIVED_INTERRUPT_ENABLE             19
-#define PCI_TARGET_ABORT_ASSERTED_INTERRUPT_ENABLE             18
-#define PCI_RETRY_ABORT_INTERRUPT_ENABLE                       17
-#define PCI_MASTER_CYCLE_DONE_INTERRUPT_ENABLE                 16
-#define GPIO_INTERRUPT_ENABLE                                  13
-#define DMA_D_INTERRUPT_ENABLE                                 12
-#define DMA_C_INTERRUPT_ENABLE                                 11
-#define DMA_B_INTERRUPT_ENABLE                                 10
-#define DMA_A_INTERRUPT_ENABLE                                 9
-#define EEPROM_DONE_INTERRUPT_ENABLE                           8
-#define VBUS_INTERRUPT_ENABLE                                  7
-#define CONTROL_STATUS_INTERRUPT_ENABLE                                6
-#define ROOT_PORT_RESET_INTERRUPT_ENABLE                       4
-#define SUSPEND_REQUEST_INTERRUPT_ENABLE                       3
-#define SUSPEND_REQUEST_CHANGE_INTERRUPT_ENABLE                        2
-#define RESUME_INTERRUPT_ENABLE                                        1
-#define SOF_INTERRUPT_ENABLE                                   0
-       __le32                  cpu_irqenb0;    /* ... or onboard 8051 */
-#define SETUP_PACKET_INTERRUPT_ENABLE                          7
-#define ENDPOINT_F_INTERRUPT_ENABLE                            6
-#define ENDPOINT_E_INTERRUPT_ENABLE                            5
-#define ENDPOINT_D_INTERRUPT_ENABLE                            4
-#define ENDPOINT_C_INTERRUPT_ENABLE                            3
-#define ENDPOINT_B_INTERRUPT_ENABLE                            2
-#define ENDPOINT_A_INTERRUPT_ENABLE                            1
-#define ENDPOINT_0_INTERRUPT_ENABLE                            0
-       __le32                  cpu_irqenb1;
-#define CPU_INTERRUPT_ENABLE                                   31
-#define POWER_STATE_CHANGE_INTERRUPT_ENABLE                    27
-#define PCI_ARBITER_TIMEOUT_INTERRUPT_ENABLE                   26
-#define PCI_PARITY_ERROR_INTERRUPT_ENABLE                      25
-#define PCI_INTA_INTERRUPT_ENABLE                              24
-#define PCI_PME_INTERRUPT_ENABLE                               23
-#define PCI_SERR_INTERRUPT_ENABLE                              22
-#define PCI_PERR_INTERRUPT_ENABLE                              21
-#define PCI_MASTER_ABORT_RECEIVED_INTERRUPT_ENABLE             20
-#define PCI_TARGET_ABORT_RECEIVED_INTERRUPT_ENABLE             19
-#define PCI_RETRY_ABORT_INTERRUPT_ENABLE                       17
-#define PCI_MASTER_CYCLE_DONE_INTERRUPT_ENABLE                 16
-#define GPIO_INTERRUPT_ENABLE                                  13
-#define DMA_D_INTERRUPT_ENABLE                                 12
-#define DMA_C_INTERRUPT_ENABLE                                 11
-#define DMA_B_INTERRUPT_ENABLE                                 10
-#define DMA_A_INTERRUPT_ENABLE                                 9
-#define EEPROM_DONE_INTERRUPT_ENABLE                           8
-#define VBUS_INTERRUPT_ENABLE                                  7
-#define CONTROL_STATUS_INTERRUPT_ENABLE                                6
-#define ROOT_PORT_RESET_INTERRUPT_ENABLE                       4
-#define SUSPEND_REQUEST_INTERRUPT_ENABLE                       3
-#define SUSPEND_REQUEST_CHANGE_INTERRUPT_ENABLE                        2
-#define RESUME_INTERRUPT_ENABLE                                        1
-#define SOF_INTERRUPT_ENABLE                                   0
-
-       /* offset 0x0020 */
-       u32                     _unused1;
-       __le32                  usbirqenb1;
-#define USB_INTERRUPT_ENABLE                                   31
-#define POWER_STATE_CHANGE_INTERRUPT_ENABLE                    27
-#define PCI_ARBITER_TIMEOUT_INTERRUPT_ENABLE                   26
-#define PCI_PARITY_ERROR_INTERRUPT_ENABLE                      25
-#define PCI_INTA_INTERRUPT_ENABLE                              24
-#define PCI_PME_INTERRUPT_ENABLE                               23
-#define PCI_SERR_INTERRUPT_ENABLE                              22
-#define PCI_PERR_INTERRUPT_ENABLE                              21
-#define PCI_MASTER_ABORT_RECEIVED_INTERRUPT_ENABLE             20
-#define PCI_TARGET_ABORT_RECEIVED_INTERRUPT_ENABLE             19
-#define PCI_RETRY_ABORT_INTERRUPT_ENABLE                       17
-#define PCI_MASTER_CYCLE_DONE_INTERRUPT_ENABLE                 16
-#define GPIO_INTERRUPT_ENABLE                                  13
-#define DMA_D_INTERRUPT_ENABLE                                 12
-#define DMA_C_INTERRUPT_ENABLE                                 11
-#define DMA_B_INTERRUPT_ENABLE                                 10
-#define DMA_A_INTERRUPT_ENABLE                                 9
-#define EEPROM_DONE_INTERRUPT_ENABLE                           8
-#define VBUS_INTERRUPT_ENABLE                                  7
-#define CONTROL_STATUS_INTERRUPT_ENABLE                                6
-#define ROOT_PORT_RESET_INTERRUPT_ENABLE                       4
-#define SUSPEND_REQUEST_INTERRUPT_ENABLE                       3
-#define SUSPEND_REQUEST_CHANGE_INTERRUPT_ENABLE                        2
-#define RESUME_INTERRUPT_ENABLE                                        1
-#define SOF_INTERRUPT_ENABLE                                   0
-       __le32                  irqstat0;
-#define INTA_ASSERTED                                          12
-#define SETUP_PACKET_INTERRUPT                                 7
-#define ENDPOINT_F_INTERRUPT                                   6
-#define ENDPOINT_E_INTERRUPT                                   5
-#define ENDPOINT_D_INTERRUPT                                   4
-#define ENDPOINT_C_INTERRUPT                                   3
-#define ENDPOINT_B_INTERRUPT                                   2
-#define ENDPOINT_A_INTERRUPT                                   1
-#define ENDPOINT_0_INTERRUPT                                   0
-       __le32                  irqstat1;
-#define POWER_STATE_CHANGE_INTERRUPT                           27
-#define PCI_ARBITER_TIMEOUT_INTERRUPT                          26
-#define PCI_PARITY_ERROR_INTERRUPT                             25
-#define PCI_INTA_INTERRUPT                                     24
-#define PCI_PME_INTERRUPT                                      23
-#define PCI_SERR_INTERRUPT                                     22
-#define PCI_PERR_INTERRUPT                                     21
-#define PCI_MASTER_ABORT_RECEIVED_INTERRUPT                    20
-#define PCI_TARGET_ABORT_RECEIVED_INTERRUPT                    19
-#define PCI_RETRY_ABORT_INTERRUPT                              17
-#define PCI_MASTER_CYCLE_DONE_INTERRUPT                                16
-#define GPIO_INTERRUPT                                         13
-#define DMA_D_INTERRUPT                                                12
-#define DMA_C_INTERRUPT                                                11
-#define DMA_B_INTERRUPT                                                10
-#define DMA_A_INTERRUPT                                                9
-#define EEPROM_DONE_INTERRUPT                                  8
-#define VBUS_INTERRUPT                                         7
-#define CONTROL_STATUS_INTERRUPT                               6
-#define ROOT_PORT_RESET_INTERRUPT                              4
-#define SUSPEND_REQUEST_INTERRUPT                              3
-#define SUSPEND_REQUEST_CHANGE_INTERRUPT                       2
-#define RESUME_INTERRUPT                                       1
-#define SOF_INTERRUPT                                          0
-       /* offset 0x0030 */
-       __le32                  idxaddr;
-       __le32                  idxdata;
-       __le32                  fifoctl;
-#define PCI_BASE2_RANGE                                                16
-#define IGNORE_FIFO_AVAILABILITY                               3
-#define PCI_BASE2_SELECT                                       2
-#define FIFO_CONFIGURATION_SELECT                              0
-       u32                     _unused2;
-       /* offset 0x0040 */
-       __le32                  memaddr;
-#define START                                                  28
-#define DIRECTION                                              27
-#define FIFO_DIAGNOSTIC_SELECT                                 24
-#define MEMORY_ADDRESS                                         0
-       __le32                  memdata0;
-       __le32                  memdata1;
-       u32                     _unused3;
-       /* offset 0x0050 */
-       __le32                  gpioctl;
-#define GPIO3_LED_SELECT                                       12
-#define GPIO3_INTERRUPT_ENABLE                                 11
-#define GPIO2_INTERRUPT_ENABLE                                 10
-#define GPIO1_INTERRUPT_ENABLE                                 9
-#define GPIO0_INTERRUPT_ENABLE                                 8
-#define GPIO3_OUTPUT_ENABLE                                    7
-#define GPIO2_OUTPUT_ENABLE                                    6
-#define GPIO1_OUTPUT_ENABLE                                    5
-#define GPIO0_OUTPUT_ENABLE                                    4
-#define GPIO3_DATA                                             3
-#define GPIO2_DATA                                             2
-#define GPIO1_DATA                                             1
-#define GPIO0_DATA                                             0
-       __le32                  gpiostat;
-#define GPIO3_INTERRUPT                                                3
-#define GPIO2_INTERRUPT                                                2
-#define GPIO1_INTERRUPT                                                1
-#define GPIO0_INTERRUPT                                                0
-} __packed;
-
-/* usb control, BAR0 + 0x0080 */
-struct net2280_usb_regs {
-       /* offset 0x0080 */
-       __le32                  stdrsp;
-#define STALL_UNSUPPORTED_REQUESTS                             31
-#define SET_TEST_MODE                                          16
-#define GET_OTHER_SPEED_CONFIGURATION                          15
-#define GET_DEVICE_QUALIFIER                                   14
-#define SET_ADDRESS                                            13
-#define ENDPOINT_SET_CLEAR_HALT                                        12
-#define DEVICE_SET_CLEAR_DEVICE_REMOTE_WAKEUP                  11
-#define GET_STRING_DESCRIPTOR_2                                        10
-#define GET_STRING_DESCRIPTOR_1                                        9
-#define GET_STRING_DESCRIPTOR_0                                        8
-#define GET_SET_INTERFACE                                      6
-#define GET_SET_CONFIGURATION                                  5
-#define GET_CONFIGURATION_DESCRIPTOR                           4
-#define GET_DEVICE_DESCRIPTOR                                  3
-#define GET_ENDPOINT_STATUS                                    2
-#define GET_INTERFACE_STATUS                                   1
-#define GET_DEVICE_STATUS                                      0
-       __le32                  prodvendid;
-#define     PRODUCT_ID                                         16
-#define     VENDOR_ID                                          0
-       __le32                  relnum;
-       __le32                  usbctl;
-#define SERIAL_NUMBER_INDEX                                    16
-#define PRODUCT_ID_STRING_ENABLE                               13
-#define VENDOR_ID_STRING_ENABLE                                        12
-#define USB_ROOT_PORT_WAKEUP_ENABLE                            11
-#define VBUS_PIN                                               10
-#define TIMED_DISCONNECT                                       9
-#define SUSPEND_IMMEDIATELY                                    7
-#define SELF_POWERED_USB_DEVICE                                        6
-#define REMOTE_WAKEUP_SUPPORT                                  5
-#define PME_POLARITY                                           4
-#define USB_DETECT_ENABLE                                      3
-#define PME_WAKEUP_ENABLE                                      2
-#define DEVICE_REMOTE_WAKEUP_ENABLE                            1
-#define SELF_POWERED_STATUS                                    0
-       /* offset 0x0090 */
-       __le32                  usbstat;
-#define HIGH_SPEED                                             7
-#define FULL_SPEED                                             6
-#define GENERATE_RESUME                                                5
-#define GENERATE_DEVICE_REMOTE_WAKEUP                          4
-       __le32                  xcvrdiag;
-#define FORCE_HIGH_SPEED_MODE                                  31
-#define FORCE_FULL_SPEED_MODE                                  30
-#define USB_TEST_MODE                                          24
-#define LINE_STATE                                             16
-#define TRANSCEIVER_OPERATION_MODE                             2
-#define TRANSCEIVER_SELECT                                     1
-#define TERMINATION_SELECT                                     0
-       __le32                  setup0123;
-       __le32                  setup4567;
-       /* offset 0x0090 */
-       u32                     _unused0;
-       __le32                  ouraddr;
-#define FORCE_IMMEDIATE                                                7
-#define OUR_USB_ADDRESS                                                0
-       __le32                  ourconfig;
-} __packed;
-
-/* pci control, BAR0 + 0x0100 */
-struct net2280_pci_regs {
-       /* offset 0x0100 */
-       __le32                  pcimstctl;
-#define PCI_ARBITER_PARK_SELECT                                        13
-#define PCI_MULTI LEVEL_ARBITER                                        12
-#define PCI_RETRY_ABORT_ENABLE                                 11
-#define DMA_MEMORY_WRITE_AND_INVALIDATE_ENABLE                 10
-#define DMA_READ_MULTIPLE_ENABLE                               9
-#define DMA_READ_LINE_ENABLE                                   8
-#define PCI_MASTER_COMMAND_SELECT                              6
-#define                MEM_READ_OR_WRITE                               0
-#define                IO_READ_OR_WRITE                                1
-#define                CFG_READ_OR_WRITE                               2
-#define PCI_MASTER_START                                       5
-#define PCI_MASTER_READ_WRITE                                  4
-#define                PCI_MASTER_WRITE                                0
-#define                PCI_MASTER_READ                                 1
-#define PCI_MASTER_BYTE_WRITE_ENABLES                          0
-       __le32                  pcimstaddr;
-       __le32                  pcimstdata;
-       __le32                  pcimststat;
-#define PCI_ARBITER_CLEAR                                      2
-#define PCI_EXTERNAL_ARBITER                                   1
-#define PCI_HOST_MODE                                          0
-} __packed;
-
-/* dma control, BAR0 + 0x0180 ... array of four structs like this,
- * for channels 0..3.  see also struct net2280_dma:  descriptor
- * that can be loaded into some of these registers.
- */
-struct net2280_dma_regs {      /* [11.7] */
-       /* offset 0x0180, 0x01a0, 0x01c0, 0x01e0, */
-       __le32                  dmactl;
-#define DMA_SCATTER_GATHER_DONE_INTERRUPT_ENABLE               25
-#define DMA_CLEAR_COUNT_ENABLE                                 21
-#define DESCRIPTOR_POLLING_RATE                                        19
-#define                POLL_CONTINUOUS                                 0
-#define                POLL_1_USEC                                     1
-#define                POLL_100_USEC                                   2
-#define                POLL_1_MSEC                                     3
-#define DMA_VALID_BIT_POLLING_ENABLE                           18
-#define DMA_VALID_BIT_ENABLE                                   17
-#define DMA_SCATTER_GATHER_ENABLE                              16
-#define DMA_OUT_AUTO_START_ENABLE                              4
-#define DMA_PREEMPT_ENABLE                                     3
-#define DMA_FIFO_VALIDATE                                      2
-#define DMA_ENABLE                                             1
-#define DMA_ADDRESS_HOLD                                       0
-       __le32                  dmastat;
-#define DMA_SCATTER_GATHER_DONE_INTERRUPT                      25
-#define DMA_TRANSACTION_DONE_INTERRUPT                         24
-#define DMA_ABORT                                              1
-#define DMA_START                                              0
-       u32                     _unused0[2];
-       /* offset 0x0190, 0x01b0, 0x01d0, 0x01f0, */
-       __le32                  dmacount;
-#define VALID_BIT                                              31
-#define DMA_DIRECTION                                          30
-#define DMA_DONE_INTERRUPT_ENABLE                              29
-#define END_OF_CHAIN                                           28
-#define DMA_BYTE_COUNT_MASK                                    ((1<<24)-1)
-#define DMA_BYTE_COUNT                                         0
-       __le32                  dmaaddr;
-       __le32                  dmadesc;
-       u32                     _unused1;
-} __packed;
-
-/* dedicated endpoint registers, BAR0 + 0x0200 */
-
-struct net2280_dep_regs {      /* [11.8] */
-       /* offset 0x0200, 0x0210, 0x220, 0x230, 0x240 */
-       __le32                  dep_cfg;
-       /* offset 0x0204, 0x0214, 0x224, 0x234, 0x244 */
-       __le32                  dep_rsp;
-       u32                     _unused[2];
-} __packed;
-
-/* configurable endpoint registers, BAR0 + 0x0300 ... array of seven structs
- * like this, for ep0 then the configurable endpoints A..F
- * ep0 reserved for control; E and F have only 64 bytes of fifo
- */
-struct net2280_ep_regs {       /* [11.9] */
-       /* offset 0x0300, 0x0320, 0x0340, 0x0360, 0x0380, 0x03a0, 0x03c0 */
-       __le32                  ep_cfg;
-#define ENDPOINT_BYTE_COUNT                                    16
-#define ENDPOINT_ENABLE                                                10
-#define ENDPOINT_TYPE                                          8
-#define ENDPOINT_DIRECTION                                     7
-#define ENDPOINT_NUMBER                                                0
-       __le32                  ep_rsp;
-#define SET_NAK_OUT_PACKETS                                    15
-#define SET_EP_HIDE_STATUS_PHASE                               14
-#define SET_EP_FORCE_CRC_ERROR                                 13
-#define SET_INTERRUPT_MODE                                     12
-#define SET_CONTROL_STATUS_PHASE_HANDSHAKE                     11
-#define SET_NAK_OUT_PACKETS_MODE                               10
-#define SET_ENDPOINT_TOGGLE                                    9
-#define SET_ENDPOINT_HALT                                      8
-#define CLEAR_NAK_OUT_PACKETS                                  7
-#define CLEAR_EP_HIDE_STATUS_PHASE                             6
-#define CLEAR_EP_FORCE_CRC_ERROR                               5
-#define CLEAR_INTERRUPT_MODE                                   4
-#define CLEAR_CONTROL_STATUS_PHASE_HANDSHAKE                   3
-#define CLEAR_NAK_OUT_PACKETS_MODE                             2
-#define CLEAR_ENDPOINT_TOGGLE                                  1
-#define CLEAR_ENDPOINT_HALT                                    0
-       __le32                  ep_irqenb;
-#define SHORT_PACKET_OUT_DONE_INTERRUPT_ENABLE                 6
-#define SHORT_PACKET_TRANSFERRED_INTERRUPT_ENABLE              5
-#define DATA_PACKET_RECEIVED_INTERRUPT_ENABLE                  3
-#define DATA_PACKET_TRANSMITTED_INTERRUPT_ENABLE               2
-#define DATA_OUT_PING_TOKEN_INTERRUPT_ENABLE                   1
-#define DATA_IN_TOKEN_INTERRUPT_ENABLE                         0
-       __le32                  ep_stat;
-#define FIFO_VALID_COUNT                                       24
-#define HIGH_BANDWIDTH_OUT_TRANSACTION_PID                     22
-#define TIMEOUT                                                        21
-#define USB_STALL_SENT                                         20
-#define USB_IN_NAK_SENT                                                19
-#define USB_IN_ACK_RCVD                                                18
-#define USB_OUT_PING_NAK_SENT                                  17
-#define USB_OUT_ACK_SENT                                       16
-#define FIFO_OVERFLOW                                          13
-#define FIFO_UNDERFLOW                                         12
-#define FIFO_FULL                                              11
-#define FIFO_EMPTY                                             10
-#define FIFO_FLUSH                                             9
-#define SHORT_PACKET_OUT_DONE_INTERRUPT                                6
-#define SHORT_PACKET_TRANSFERRED_INTERRUPT                     5
-#define NAK_OUT_PACKETS                                                4
-#define DATA_PACKET_RECEIVED_INTERRUPT                         3
-#define DATA_PACKET_TRANSMITTED_INTERRUPT                      2
-#define DATA_OUT_PING_TOKEN_INTERRUPT                          1
-#define DATA_IN_TOKEN_INTERRUPT                                        0
-       /* offset 0x0310, 0x0330, 0x0350, 0x0370, 0x0390, 0x03b0, 0x03d0 */
-       __le32                  ep_avail;
-       __le32                  ep_data;
-       u32                     _unused0[2];
-} __packed;
-
-struct net2280_reg_write {
-       __le16 port;
-       __le32 addr;
-       __le32 val;
-} __packed;
-
-struct net2280_reg_read {
-       __le16 port;
-       __le32 addr;
-} __packed;
-#endif /* NET2280_H */
diff --git a/drivers/net/wireless/p54/p54usb.h b/drivers/net/wireless/p54/p54usb.h
index d273be7..a5f5f0f 100644
--- a/drivers/net/wireless/p54/p54usb.h
+++ b/drivers/net/wireless/p54/p54usb.h
@@ -16,7 +16,7 @@

 /* for isl3886 register definitions used on ver 1 devices */
 #include "p54pci.h"
-#include "net2280.h"
+#include <linux/usb/net2280.h>

 /* pci */
 #define NET2280_BASE           0x10000000
@@ -93,6 +93,17 @@ enum net2280_op_type {
        NET2280_DEV_CFG_U16     = 0x0883
 };

+struct net2280_reg_write {
+       __le16 port;
+       __le32 addr;
+       __le32 val;
+} __packed;
+
+struct net2280_reg_read {
+       __le16 port;
+       __le32 addr;
+} __packed;
+
 #define P54U_FW_BLOCK 2048

 #define X2_SIGNATURE "x2  "
--
2.1.3


-- 
Ricardo Ribalda
-- 
John W. Linville		Someday the world will need a hero, and you
linville@tuxdriver.com			might be all we have.  Be ready.

Re: [PATCH] wireless/p54: Remove duplicated net2280 header

From: Ricardo Ribalda Delgado <hidden>
Date: 2014-12-01 20:57:13

Hello John

No sorry. I only checked patchwork and the mailing list. I was
expecting the typical mail when a patch is merged into a tree :),
sorry about that, first contrib to the wireless subsystem.

Thanks

On Mon, Dec 1, 2014 at 8:59 PM, John W. Linville [off-list ref] wrote:
Did you check the wireless-next tree's git logs?

commit a831f20b6d6460640b83644d1c1df6e7e8ca9f68
Author: Ricardo Ribalda Delgado [off-list ref]
Date:   Mon Nov 24 11:19:51 2014 +0100

    wireless/p54: Remove duplicated net2280 header

    The usb gadget driver net2280 has exported a header file with the
    register definition of the net2280 chip.

    Remove the custom/duplicated header file in favor of that header file
    in include/linux

    Signed-off-by: Ricardo Ribalda Delgado [off-list ref]
    Signed-off-by: John W. Linville [off-list ref]

On Mon, Dec 01, 2014 at 11:46:43AM +0100, Ricardo Ribalda Delgado wrote:
quoted
David Miller has marked the patch as "Awaiting Upstream", which I
think means that it should be merged through the wireless tree.

Any comment from there?

On Mon, Nov 24, 2014 at 11:19 AM, Ricardo Ribalda Delgado
[off-list ref] wrote:
quoted
The usb gadget driver net2280 has exported a header file with the
register definition of the net2280 chip.

Remove the custom/duplicated header file in favor of that header file
in include/linux

Signed-off-by: Ricardo Ribalda Delgado <redacted>
---
 drivers/net/wireless/p54/net2280.h | 451 -------------------------------------
 drivers/net/wireless/p54/p54usb.h  |  13 +-
 2 files changed, 12 insertions(+), 452 deletions(-)
 delete mode 100644 drivers/net/wireless/p54/net2280.h
diff --git a/drivers/net/wireless/p54/net2280.h b/drivers/net/wireless/p54/net2280.h
deleted file mode 100644
index aedfaf2..0000000
--- a/drivers/net/wireless/p54/net2280.h
+++ /dev/null
@@ -1,451 +0,0 @@
-#ifndef NET2280_H
-#define NET2280_H
-/*
- * NetChip 2280 high/full speed USB device controller.
- * Unlike many such controllers, this one talks PCI.
- */
-
-/*
- * Copyright (C) 2002 NetChip Technology, Inc. (http://www.netchip.com)
- * Copyright (C) 2003 David Brownell
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
- */
-
-/*-------------------------------------------------------------------------*/
-
-/* NET2280 MEMORY MAPPED REGISTERS
- *
- * The register layout came from the chip documentation, and the bit
- * number definitions were extracted from chip specification.
- *
- * Use the shift operator ('<<') to build bit masks, with readl/writel
- * to access the registers through PCI.
- */
-
-/* main registers, BAR0 + 0x0000 */
-struct net2280_regs {
-       /* offset 0x0000 */
-       __le32                  devinit;
-#define LOCAL_CLOCK_FREQUENCY                                  8
-#define FORCE_PCI_RESET                                                7
-#define PCI_ID                                                 6
-#define PCI_ENABLE                                             5
-#define FIFO_SOFT_RESET                                                4
-#define CFG_SOFT_RESET                                         3
-#define PCI_SOFT_RESET                                         2
-#define USB_SOFT_RESET                                         1
-#define M8051_RESET                                            0
-       __le32                  eectl;
-#define EEPROM_ADDRESS_WIDTH                                   23
-#define EEPROM_CHIP_SELECT_ACTIVE                              22
-#define EEPROM_PRESENT                                         21
-#define EEPROM_VALID                                           20
-#define EEPROM_BUSY                                            19
-#define EEPROM_CHIP_SELECT_ENABLE                              18
-#define EEPROM_BYTE_READ_START                                 17
-#define EEPROM_BYTE_WRITE_START                                        16
-#define EEPROM_READ_DATA                                       8
-#define EEPROM_WRITE_DATA                                      0
-       __le32                  eeclkfreq;
-       u32                     _unused0;
-       /* offset 0x0010 */
-
-       __le32                  pciirqenb0;     /* interrupt PCI master ... */
-#define SETUP_PACKET_INTERRUPT_ENABLE                          7
-#define ENDPOINT_F_INTERRUPT_ENABLE                            6
-#define ENDPOINT_E_INTERRUPT_ENABLE                            5
-#define ENDPOINT_D_INTERRUPT_ENABLE                            4
-#define ENDPOINT_C_INTERRUPT_ENABLE                            3
-#define ENDPOINT_B_INTERRUPT_ENABLE                            2
-#define ENDPOINT_A_INTERRUPT_ENABLE                            1
-#define ENDPOINT_0_INTERRUPT_ENABLE                            0
-       __le32                  pciirqenb1;
-#define PCI_INTERRUPT_ENABLE                                   31
-#define POWER_STATE_CHANGE_INTERRUPT_ENABLE                    27
-#define PCI_ARBITER_TIMEOUT_INTERRUPT_ENABLE                   26
-#define PCI_PARITY_ERROR_INTERRUPT_ENABLE                      25
-#define PCI_MASTER_ABORT_RECEIVED_INTERRUPT_ENABLE             20
-#define PCI_TARGET_ABORT_RECEIVED_INTERRUPT_ENABLE             19
-#define PCI_TARGET_ABORT_ASSERTED_INTERRUPT_ENABLE             18
-#define PCI_RETRY_ABORT_INTERRUPT_ENABLE                       17
-#define PCI_MASTER_CYCLE_DONE_INTERRUPT_ENABLE                 16
-#define GPIO_INTERRUPT_ENABLE                                  13
-#define DMA_D_INTERRUPT_ENABLE                                 12
-#define DMA_C_INTERRUPT_ENABLE                                 11
-#define DMA_B_INTERRUPT_ENABLE                                 10
-#define DMA_A_INTERRUPT_ENABLE                                 9
-#define EEPROM_DONE_INTERRUPT_ENABLE                           8
-#define VBUS_INTERRUPT_ENABLE                                  7
-#define CONTROL_STATUS_INTERRUPT_ENABLE                                6
-#define ROOT_PORT_RESET_INTERRUPT_ENABLE                       4
-#define SUSPEND_REQUEST_INTERRUPT_ENABLE                       3
-#define SUSPEND_REQUEST_CHANGE_INTERRUPT_ENABLE                        2
-#define RESUME_INTERRUPT_ENABLE                                        1
-#define SOF_INTERRUPT_ENABLE                                   0
-       __le32                  cpu_irqenb0;    /* ... or onboard 8051 */
-#define SETUP_PACKET_INTERRUPT_ENABLE                          7
-#define ENDPOINT_F_INTERRUPT_ENABLE                            6
-#define ENDPOINT_E_INTERRUPT_ENABLE                            5
-#define ENDPOINT_D_INTERRUPT_ENABLE                            4
-#define ENDPOINT_C_INTERRUPT_ENABLE                            3
-#define ENDPOINT_B_INTERRUPT_ENABLE                            2
-#define ENDPOINT_A_INTERRUPT_ENABLE                            1
-#define ENDPOINT_0_INTERRUPT_ENABLE                            0
-       __le32                  cpu_irqenb1;
-#define CPU_INTERRUPT_ENABLE                                   31
-#define POWER_STATE_CHANGE_INTERRUPT_ENABLE                    27
-#define PCI_ARBITER_TIMEOUT_INTERRUPT_ENABLE                   26
-#define PCI_PARITY_ERROR_INTERRUPT_ENABLE                      25
-#define PCI_INTA_INTERRUPT_ENABLE                              24
-#define PCI_PME_INTERRUPT_ENABLE                               23
-#define PCI_SERR_INTERRUPT_ENABLE                              22
-#define PCI_PERR_INTERRUPT_ENABLE                              21
-#define PCI_MASTER_ABORT_RECEIVED_INTERRUPT_ENABLE             20
-#define PCI_TARGET_ABORT_RECEIVED_INTERRUPT_ENABLE             19
-#define PCI_RETRY_ABORT_INTERRUPT_ENABLE                       17
-#define PCI_MASTER_CYCLE_DONE_INTERRUPT_ENABLE                 16
-#define GPIO_INTERRUPT_ENABLE                                  13
-#define DMA_D_INTERRUPT_ENABLE                                 12
-#define DMA_C_INTERRUPT_ENABLE                                 11
-#define DMA_B_INTERRUPT_ENABLE                                 10
-#define DMA_A_INTERRUPT_ENABLE                                 9
-#define EEPROM_DONE_INTERRUPT_ENABLE                           8
-#define VBUS_INTERRUPT_ENABLE                                  7
-#define CONTROL_STATUS_INTERRUPT_ENABLE                                6
-#define ROOT_PORT_RESET_INTERRUPT_ENABLE                       4
-#define SUSPEND_REQUEST_INTERRUPT_ENABLE                       3
-#define SUSPEND_REQUEST_CHANGE_INTERRUPT_ENABLE                        2
-#define RESUME_INTERRUPT_ENABLE                                        1
-#define SOF_INTERRUPT_ENABLE                                   0
-
-       /* offset 0x0020 */
-       u32                     _unused1;
-       __le32                  usbirqenb1;
-#define USB_INTERRUPT_ENABLE                                   31
-#define POWER_STATE_CHANGE_INTERRUPT_ENABLE                    27
-#define PCI_ARBITER_TIMEOUT_INTERRUPT_ENABLE                   26
-#define PCI_PARITY_ERROR_INTERRUPT_ENABLE                      25
-#define PCI_INTA_INTERRUPT_ENABLE                              24
-#define PCI_PME_INTERRUPT_ENABLE                               23
-#define PCI_SERR_INTERRUPT_ENABLE                              22
-#define PCI_PERR_INTERRUPT_ENABLE                              21
-#define PCI_MASTER_ABORT_RECEIVED_INTERRUPT_ENABLE             20
-#define PCI_TARGET_ABORT_RECEIVED_INTERRUPT_ENABLE             19
-#define PCI_RETRY_ABORT_INTERRUPT_ENABLE                       17
-#define PCI_MASTER_CYCLE_DONE_INTERRUPT_ENABLE                 16
-#define GPIO_INTERRUPT_ENABLE                                  13
-#define DMA_D_INTERRUPT_ENABLE                                 12
-#define DMA_C_INTERRUPT_ENABLE                                 11
-#define DMA_B_INTERRUPT_ENABLE                                 10
-#define DMA_A_INTERRUPT_ENABLE                                 9
-#define EEPROM_DONE_INTERRUPT_ENABLE                           8
-#define VBUS_INTERRUPT_ENABLE                                  7
-#define CONTROL_STATUS_INTERRUPT_ENABLE                                6
-#define ROOT_PORT_RESET_INTERRUPT_ENABLE                       4
-#define SUSPEND_REQUEST_INTERRUPT_ENABLE                       3
-#define SUSPEND_REQUEST_CHANGE_INTERRUPT_ENABLE                        2
-#define RESUME_INTERRUPT_ENABLE                                        1
-#define SOF_INTERRUPT_ENABLE                                   0
-       __le32                  irqstat0;
-#define INTA_ASSERTED                                          12
-#define SETUP_PACKET_INTERRUPT                                 7
-#define ENDPOINT_F_INTERRUPT                                   6
-#define ENDPOINT_E_INTERRUPT                                   5
-#define ENDPOINT_D_INTERRUPT                                   4
-#define ENDPOINT_C_INTERRUPT                                   3
-#define ENDPOINT_B_INTERRUPT                                   2
-#define ENDPOINT_A_INTERRUPT                                   1
-#define ENDPOINT_0_INTERRUPT                                   0
-       __le32                  irqstat1;
-#define POWER_STATE_CHANGE_INTERRUPT                           27
-#define PCI_ARBITER_TIMEOUT_INTERRUPT                          26
-#define PCI_PARITY_ERROR_INTERRUPT                             25
-#define PCI_INTA_INTERRUPT                                     24
-#define PCI_PME_INTERRUPT                                      23
-#define PCI_SERR_INTERRUPT                                     22
-#define PCI_PERR_INTERRUPT                                     21
-#define PCI_MASTER_ABORT_RECEIVED_INTERRUPT                    20
-#define PCI_TARGET_ABORT_RECEIVED_INTERRUPT                    19
-#define PCI_RETRY_ABORT_INTERRUPT                              17
-#define PCI_MASTER_CYCLE_DONE_INTERRUPT                                16
-#define GPIO_INTERRUPT                                         13
-#define DMA_D_INTERRUPT                                                12
-#define DMA_C_INTERRUPT                                                11
-#define DMA_B_INTERRUPT                                                10
-#define DMA_A_INTERRUPT                                                9
-#define EEPROM_DONE_INTERRUPT                                  8
-#define VBUS_INTERRUPT                                         7
-#define CONTROL_STATUS_INTERRUPT                               6
-#define ROOT_PORT_RESET_INTERRUPT                              4
-#define SUSPEND_REQUEST_INTERRUPT                              3
-#define SUSPEND_REQUEST_CHANGE_INTERRUPT                       2
-#define RESUME_INTERRUPT                                       1
-#define SOF_INTERRUPT                                          0
-       /* offset 0x0030 */
-       __le32                  idxaddr;
-       __le32                  idxdata;
-       __le32                  fifoctl;
-#define PCI_BASE2_RANGE                                                16
-#define IGNORE_FIFO_AVAILABILITY                               3
-#define PCI_BASE2_SELECT                                       2
-#define FIFO_CONFIGURATION_SELECT                              0
-       u32                     _unused2;
-       /* offset 0x0040 */
-       __le32                  memaddr;
-#define START                                                  28
-#define DIRECTION                                              27
-#define FIFO_DIAGNOSTIC_SELECT                                 24
-#define MEMORY_ADDRESS                                         0
-       __le32                  memdata0;
-       __le32                  memdata1;
-       u32                     _unused3;
-       /* offset 0x0050 */
-       __le32                  gpioctl;
-#define GPIO3_LED_SELECT                                       12
-#define GPIO3_INTERRUPT_ENABLE                                 11
-#define GPIO2_INTERRUPT_ENABLE                                 10
-#define GPIO1_INTERRUPT_ENABLE                                 9
-#define GPIO0_INTERRUPT_ENABLE                                 8
-#define GPIO3_OUTPUT_ENABLE                                    7
-#define GPIO2_OUTPUT_ENABLE                                    6
-#define GPIO1_OUTPUT_ENABLE                                    5
-#define GPIO0_OUTPUT_ENABLE                                    4
-#define GPIO3_DATA                                             3
-#define GPIO2_DATA                                             2
-#define GPIO1_DATA                                             1
-#define GPIO0_DATA                                             0
-       __le32                  gpiostat;
-#define GPIO3_INTERRUPT                                                3
-#define GPIO2_INTERRUPT                                                2
-#define GPIO1_INTERRUPT                                                1
-#define GPIO0_INTERRUPT                                                0
-} __packed;
-
-/* usb control, BAR0 + 0x0080 */
-struct net2280_usb_regs {
-       /* offset 0x0080 */
-       __le32                  stdrsp;
-#define STALL_UNSUPPORTED_REQUESTS                             31
-#define SET_TEST_MODE                                          16
-#define GET_OTHER_SPEED_CONFIGURATION                          15
-#define GET_DEVICE_QUALIFIER                                   14
-#define SET_ADDRESS                                            13
-#define ENDPOINT_SET_CLEAR_HALT                                        12
-#define DEVICE_SET_CLEAR_DEVICE_REMOTE_WAKEUP                  11
-#define GET_STRING_DESCRIPTOR_2                                        10
-#define GET_STRING_DESCRIPTOR_1                                        9
-#define GET_STRING_DESCRIPTOR_0                                        8
-#define GET_SET_INTERFACE                                      6
-#define GET_SET_CONFIGURATION                                  5
-#define GET_CONFIGURATION_DESCRIPTOR                           4
-#define GET_DEVICE_DESCRIPTOR                                  3
-#define GET_ENDPOINT_STATUS                                    2
-#define GET_INTERFACE_STATUS                                   1
-#define GET_DEVICE_STATUS                                      0
-       __le32                  prodvendid;
-#define     PRODUCT_ID                                         16
-#define     VENDOR_ID                                          0
-       __le32                  relnum;
-       __le32                  usbctl;
-#define SERIAL_NUMBER_INDEX                                    16
-#define PRODUCT_ID_STRING_ENABLE                               13
-#define VENDOR_ID_STRING_ENABLE                                        12
-#define USB_ROOT_PORT_WAKEUP_ENABLE                            11
-#define VBUS_PIN                                               10
-#define TIMED_DISCONNECT                                       9
-#define SUSPEND_IMMEDIATELY                                    7
-#define SELF_POWERED_USB_DEVICE                                        6
-#define REMOTE_WAKEUP_SUPPORT                                  5
-#define PME_POLARITY                                           4
-#define USB_DETECT_ENABLE                                      3
-#define PME_WAKEUP_ENABLE                                      2
-#define DEVICE_REMOTE_WAKEUP_ENABLE                            1
-#define SELF_POWERED_STATUS                                    0
-       /* offset 0x0090 */
-       __le32                  usbstat;
-#define HIGH_SPEED                                             7
-#define FULL_SPEED                                             6
-#define GENERATE_RESUME                                                5
-#define GENERATE_DEVICE_REMOTE_WAKEUP                          4
-       __le32                  xcvrdiag;
-#define FORCE_HIGH_SPEED_MODE                                  31
-#define FORCE_FULL_SPEED_MODE                                  30
-#define USB_TEST_MODE                                          24
-#define LINE_STATE                                             16
-#define TRANSCEIVER_OPERATION_MODE                             2
-#define TRANSCEIVER_SELECT                                     1
-#define TERMINATION_SELECT                                     0
-       __le32                  setup0123;
-       __le32                  setup4567;
-       /* offset 0x0090 */
-       u32                     _unused0;
-       __le32                  ouraddr;
-#define FORCE_IMMEDIATE                                                7
-#define OUR_USB_ADDRESS                                                0
-       __le32                  ourconfig;
-} __packed;
-
-/* pci control, BAR0 + 0x0100 */
-struct net2280_pci_regs {
-       /* offset 0x0100 */
-       __le32                  pcimstctl;
-#define PCI_ARBITER_PARK_SELECT                                        13
-#define PCI_MULTI LEVEL_ARBITER                                        12
-#define PCI_RETRY_ABORT_ENABLE                                 11
-#define DMA_MEMORY_WRITE_AND_INVALIDATE_ENABLE                 10
-#define DMA_READ_MULTIPLE_ENABLE                               9
-#define DMA_READ_LINE_ENABLE                                   8
-#define PCI_MASTER_COMMAND_SELECT                              6
-#define                MEM_READ_OR_WRITE                               0
-#define                IO_READ_OR_WRITE                                1
-#define                CFG_READ_OR_WRITE                               2
-#define PCI_MASTER_START                                       5
-#define PCI_MASTER_READ_WRITE                                  4
-#define                PCI_MASTER_WRITE                                0
-#define                PCI_MASTER_READ                                 1
-#define PCI_MASTER_BYTE_WRITE_ENABLES                          0
-       __le32                  pcimstaddr;
-       __le32                  pcimstdata;
-       __le32                  pcimststat;
-#define PCI_ARBITER_CLEAR                                      2
-#define PCI_EXTERNAL_ARBITER                                   1
-#define PCI_HOST_MODE                                          0
-} __packed;
-
-/* dma control, BAR0 + 0x0180 ... array of four structs like this,
- * for channels 0..3.  see also struct net2280_dma:  descriptor
- * that can be loaded into some of these registers.
- */
-struct net2280_dma_regs {      /* [11.7] */
-       /* offset 0x0180, 0x01a0, 0x01c0, 0x01e0, */
-       __le32                  dmactl;
-#define DMA_SCATTER_GATHER_DONE_INTERRUPT_ENABLE               25
-#define DMA_CLEAR_COUNT_ENABLE                                 21
-#define DESCRIPTOR_POLLING_RATE                                        19
-#define                POLL_CONTINUOUS                                 0
-#define                POLL_1_USEC                                     1
-#define                POLL_100_USEC                                   2
-#define                POLL_1_MSEC                                     3
-#define DMA_VALID_BIT_POLLING_ENABLE                           18
-#define DMA_VALID_BIT_ENABLE                                   17
-#define DMA_SCATTER_GATHER_ENABLE                              16
-#define DMA_OUT_AUTO_START_ENABLE                              4
-#define DMA_PREEMPT_ENABLE                                     3
-#define DMA_FIFO_VALIDATE                                      2
-#define DMA_ENABLE                                             1
-#define DMA_ADDRESS_HOLD                                       0
-       __le32                  dmastat;
-#define DMA_SCATTER_GATHER_DONE_INTERRUPT                      25
-#define DMA_TRANSACTION_DONE_INTERRUPT                         24
-#define DMA_ABORT                                              1
-#define DMA_START                                              0
-       u32                     _unused0[2];
-       /* offset 0x0190, 0x01b0, 0x01d0, 0x01f0, */
-       __le32                  dmacount;
-#define VALID_BIT                                              31
-#define DMA_DIRECTION                                          30
-#define DMA_DONE_INTERRUPT_ENABLE                              29
-#define END_OF_CHAIN                                           28
-#define DMA_BYTE_COUNT_MASK                                    ((1<<24)-1)
-#define DMA_BYTE_COUNT                                         0
-       __le32                  dmaaddr;
-       __le32                  dmadesc;
-       u32                     _unused1;
-} __packed;
-
-/* dedicated endpoint registers, BAR0 + 0x0200 */
-
-struct net2280_dep_regs {      /* [11.8] */
-       /* offset 0x0200, 0x0210, 0x220, 0x230, 0x240 */
-       __le32                  dep_cfg;
-       /* offset 0x0204, 0x0214, 0x224, 0x234, 0x244 */
-       __le32                  dep_rsp;
-       u32                     _unused[2];
-} __packed;
-
-/* configurable endpoint registers, BAR0 + 0x0300 ... array of seven structs
- * like this, for ep0 then the configurable endpoints A..F
- * ep0 reserved for control; E and F have only 64 bytes of fifo
- */
-struct net2280_ep_regs {       /* [11.9] */
-       /* offset 0x0300, 0x0320, 0x0340, 0x0360, 0x0380, 0x03a0, 0x03c0 */
-       __le32                  ep_cfg;
-#define ENDPOINT_BYTE_COUNT                                    16
-#define ENDPOINT_ENABLE                                                10
-#define ENDPOINT_TYPE                                          8
-#define ENDPOINT_DIRECTION                                     7
-#define ENDPOINT_NUMBER                                                0
-       __le32                  ep_rsp;
-#define SET_NAK_OUT_PACKETS                                    15
-#define SET_EP_HIDE_STATUS_PHASE                               14
-#define SET_EP_FORCE_CRC_ERROR                                 13
-#define SET_INTERRUPT_MODE                                     12
-#define SET_CONTROL_STATUS_PHASE_HANDSHAKE                     11
-#define SET_NAK_OUT_PACKETS_MODE                               10
-#define SET_ENDPOINT_TOGGLE                                    9
-#define SET_ENDPOINT_HALT                                      8
-#define CLEAR_NAK_OUT_PACKETS                                  7
-#define CLEAR_EP_HIDE_STATUS_PHASE                             6
-#define CLEAR_EP_FORCE_CRC_ERROR                               5
-#define CLEAR_INTERRUPT_MODE                                   4
-#define CLEAR_CONTROL_STATUS_PHASE_HANDSHAKE                   3
-#define CLEAR_NAK_OUT_PACKETS_MODE                             2
-#define CLEAR_ENDPOINT_TOGGLE                                  1
-#define CLEAR_ENDPOINT_HALT                                    0
-       __le32                  ep_irqenb;
-#define SHORT_PACKET_OUT_DONE_INTERRUPT_ENABLE                 6
-#define SHORT_PACKET_TRANSFERRED_INTERRUPT_ENABLE              5
-#define DATA_PACKET_RECEIVED_INTERRUPT_ENABLE                  3
-#define DATA_PACKET_TRANSMITTED_INTERRUPT_ENABLE               2
-#define DATA_OUT_PING_TOKEN_INTERRUPT_ENABLE                   1
-#define DATA_IN_TOKEN_INTERRUPT_ENABLE                         0
-       __le32                  ep_stat;
-#define FIFO_VALID_COUNT                                       24
-#define HIGH_BANDWIDTH_OUT_TRANSACTION_PID                     22
-#define TIMEOUT                                                        21
-#define USB_STALL_SENT                                         20
-#define USB_IN_NAK_SENT                                                19
-#define USB_IN_ACK_RCVD                                                18
-#define USB_OUT_PING_NAK_SENT                                  17
-#define USB_OUT_ACK_SENT                                       16
-#define FIFO_OVERFLOW                                          13
-#define FIFO_UNDERFLOW                                         12
-#define FIFO_FULL                                              11
-#define FIFO_EMPTY                                             10
-#define FIFO_FLUSH                                             9
-#define SHORT_PACKET_OUT_DONE_INTERRUPT                                6
-#define SHORT_PACKET_TRANSFERRED_INTERRUPT                     5
-#define NAK_OUT_PACKETS                                                4
-#define DATA_PACKET_RECEIVED_INTERRUPT                         3
-#define DATA_PACKET_TRANSMITTED_INTERRUPT                      2
-#define DATA_OUT_PING_TOKEN_INTERRUPT                          1
-#define DATA_IN_TOKEN_INTERRUPT                                        0
-       /* offset 0x0310, 0x0330, 0x0350, 0x0370, 0x0390, 0x03b0, 0x03d0 */
-       __le32                  ep_avail;
-       __le32                  ep_data;
-       u32                     _unused0[2];
-} __packed;
-
-struct net2280_reg_write {
-       __le16 port;
-       __le32 addr;
-       __le32 val;
-} __packed;
-
-struct net2280_reg_read {
-       __le16 port;
-       __le32 addr;
-} __packed;
-#endif /* NET2280_H */
diff --git a/drivers/net/wireless/p54/p54usb.h b/drivers/net/wireless/p54/p54usb.h
index d273be7..a5f5f0f 100644
--- a/drivers/net/wireless/p54/p54usb.h
+++ b/drivers/net/wireless/p54/p54usb.h
@@ -16,7 +16,7 @@

 /* for isl3886 register definitions used on ver 1 devices */
 #include "p54pci.h"
-#include "net2280.h"
+#include <linux/usb/net2280.h>

 /* pci */
 #define NET2280_BASE           0x10000000
@@ -93,6 +93,17 @@ enum net2280_op_type {
        NET2280_DEV_CFG_U16     = 0x0883
 };

+struct net2280_reg_write {
+       __le16 port;
+       __le32 addr;
+       __le32 val;
+} __packed;
+
+struct net2280_reg_read {
+       __le16 port;
+       __le32 addr;
+} __packed;
+
 #define P54U_FW_BLOCK 2048

 #define X2_SIGNATURE "x2  "
--
2.1.3


--
Ricardo Ribalda
--
John W. Linville                Someday the world will need a hero, and you
linville@tuxdriver.com                  might be all we have.  Be ready.


-- 
Ricardo Ribalda
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help