mirror of
				https://github.com/AetherDroid/android_kernel_samsung_on5xelte.git
				synced 2025-10-31 16:18:51 +01:00 
			
		
		
		
	Fixed MTP to work with TWRP
This commit is contained in:
		
						commit
						f6dfaef42e
					
				
					 50820 changed files with 20846062 additions and 0 deletions
				
			
		
							
								
								
									
										11
									
								
								drivers/net/ethernet/aeroflex/Kconfig
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								drivers/net/ethernet/aeroflex/Kconfig
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,11 @@ | |||
| # | ||||
| # Aeroflex Gaisler network device configuration | ||||
| # | ||||
| 
 | ||||
| config GRETH | ||||
| 	tristate "Aeroflex Gaisler GRETH Ethernet MAC support" | ||||
| 	depends on SPARC | ||||
| 	select PHYLIB | ||||
| 	select CRC32 | ||||
| 	---help--- | ||||
| 	  Say Y here if you want to use the Aeroflex Gaisler GRETH Ethernet MAC. | ||||
							
								
								
									
										5
									
								
								drivers/net/ethernet/aeroflex/Makefile
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								drivers/net/ethernet/aeroflex/Makefile
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,5 @@ | |||
| #
 | ||||
| # Makefile for the Aeroflex Gaisler network device drivers.
 | ||||
| #
 | ||||
| 
 | ||||
| obj-$(CONFIG_GRETH) += greth.o | ||||
							
								
								
									
										1617
									
								
								drivers/net/ethernet/aeroflex/greth.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1617
									
								
								drivers/net/ethernet/aeroflex/greth.c
									
										
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
							
								
								
									
										142
									
								
								drivers/net/ethernet/aeroflex/greth.h
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										142
									
								
								drivers/net/ethernet/aeroflex/greth.h
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,142 @@ | |||
| #ifndef GRETH_H | ||||
| #define GRETH_H | ||||
| 
 | ||||
| #include <linux/phy.h> | ||||
| 
 | ||||
| /* Register bits and masks */ | ||||
| #define GRETH_RESET 0x40 | ||||
| #define GRETH_MII_BUSY 0x8 | ||||
| #define GRETH_MII_NVALID 0x10 | ||||
| 
 | ||||
| #define GRETH_CTRL_FD         0x10 | ||||
| #define GRETH_CTRL_PR         0x20 | ||||
| #define GRETH_CTRL_SP         0x80 | ||||
| #define GRETH_CTRL_GB         0x100 | ||||
| #define GRETH_CTRL_PSTATIEN   0x400 | ||||
| #define GRETH_CTRL_MCEN       0x800 | ||||
| #define GRETH_CTRL_DISDUPLEX  0x1000 | ||||
| #define GRETH_STATUS_PHYSTAT  0x100 | ||||
| 
 | ||||
| #define GRETH_BD_EN 0x800 | ||||
| #define GRETH_BD_WR 0x1000 | ||||
| #define GRETH_BD_IE 0x2000 | ||||
| #define GRETH_BD_LEN 0x7FF | ||||
| 
 | ||||
| #define GRETH_TXEN 0x1 | ||||
| #define GRETH_INT_TE 0x2 | ||||
| #define GRETH_INT_TX 0x8 | ||||
| #define GRETH_TXI 0x4 | ||||
| #define GRETH_TXBD_STATUS 0x0001C000 | ||||
| #define GRETH_TXBD_MORE 0x20000 | ||||
| #define GRETH_TXBD_IPCS 0x40000 | ||||
| #define GRETH_TXBD_TCPCS 0x80000 | ||||
| #define GRETH_TXBD_UDPCS 0x100000 | ||||
| #define GRETH_TXBD_CSALL (GRETH_TXBD_IPCS | GRETH_TXBD_TCPCS | GRETH_TXBD_UDPCS) | ||||
| #define GRETH_TXBD_ERR_LC 0x10000 | ||||
| #define GRETH_TXBD_ERR_UE 0x4000 | ||||
| #define GRETH_TXBD_ERR_AL 0x8000 | ||||
| 
 | ||||
| #define GRETH_INT_RE         0x1 | ||||
| #define GRETH_INT_RX         0x4 | ||||
| #define GRETH_RXEN           0x2 | ||||
| #define GRETH_RXI            0x8 | ||||
| #define GRETH_RXBD_STATUS    0xFFFFC000 | ||||
| #define GRETH_RXBD_ERR_AE    0x4000 | ||||
| #define GRETH_RXBD_ERR_FT    0x8000 | ||||
| #define GRETH_RXBD_ERR_CRC   0x10000 | ||||
| #define GRETH_RXBD_ERR_OE    0x20000 | ||||
| #define GRETH_RXBD_ERR_LE    0x40000 | ||||
| #define GRETH_RXBD_IP        0x80000 | ||||
| #define GRETH_RXBD_IP_CSERR  0x100000 | ||||
| #define GRETH_RXBD_UDP       0x200000 | ||||
| #define GRETH_RXBD_UDP_CSERR 0x400000 | ||||
| #define GRETH_RXBD_TCP       0x800000 | ||||
| #define GRETH_RXBD_TCP_CSERR 0x1000000 | ||||
| #define GRETH_RXBD_IP_FRAG   0x2000000 | ||||
| #define GRETH_RXBD_MCAST     0x4000000 | ||||
| 
 | ||||
| /* Descriptor parameters */ | ||||
| #define GRETH_TXBD_NUM 128 | ||||
| #define GRETH_TXBD_NUM_MASK (GRETH_TXBD_NUM-1) | ||||
| #define GRETH_TX_BUF_SIZE 2048 | ||||
| #define GRETH_RXBD_NUM 128 | ||||
| #define GRETH_RXBD_NUM_MASK (GRETH_RXBD_NUM-1) | ||||
| #define GRETH_RX_BUF_SIZE 2048 | ||||
| 
 | ||||
| /* Buffers per page */ | ||||
| #define GRETH_RX_BUF_PPGAE	(PAGE_SIZE/GRETH_RX_BUF_SIZE) | ||||
| #define GRETH_TX_BUF_PPGAE	(PAGE_SIZE/GRETH_TX_BUF_SIZE) | ||||
| 
 | ||||
| /* How many pages are needed for buffers */ | ||||
| #define GRETH_RX_BUF_PAGE_NUM	(GRETH_RXBD_NUM/GRETH_RX_BUF_PPGAE) | ||||
| #define GRETH_TX_BUF_PAGE_NUM	(GRETH_TXBD_NUM/GRETH_TX_BUF_PPGAE) | ||||
| 
 | ||||
| /* Buffer size.
 | ||||
|  * Gbit MAC uses tagged maximum frame size which is 1518 excluding CRC. | ||||
|  * Set to 1520 to make all buffers word aligned for non-gbit MAC. | ||||
|  */ | ||||
| #define MAX_FRAME_SIZE		1520 | ||||
| 
 | ||||
| /* GRETH APB registers */ | ||||
| struct greth_regs { | ||||
| 	u32 control; | ||||
| 	u32 status; | ||||
| 	u32 esa_msb; | ||||
| 	u32 esa_lsb; | ||||
| 	u32 mdio; | ||||
| 	u32 tx_desc_p; | ||||
| 	u32 rx_desc_p; | ||||
| 	u32 edclip; | ||||
| 	u32 hash_msb; | ||||
| 	u32 hash_lsb; | ||||
| }; | ||||
| 
 | ||||
| /* GRETH buffer descriptor */ | ||||
| struct greth_bd { | ||||
| 	u32 stat; | ||||
| 	u32 addr; | ||||
| }; | ||||
| 
 | ||||
| struct greth_private { | ||||
| 	struct sk_buff *rx_skbuff[GRETH_RXBD_NUM]; | ||||
| 	struct sk_buff *tx_skbuff[GRETH_TXBD_NUM]; | ||||
| 
 | ||||
| 	unsigned char *tx_bufs[GRETH_TXBD_NUM]; | ||||
| 	unsigned char *rx_bufs[GRETH_RXBD_NUM]; | ||||
| 	u16 tx_bufs_length[GRETH_TXBD_NUM]; | ||||
| 
 | ||||
| 	u16 tx_next; | ||||
| 	u16 tx_last; | ||||
| 	u16 tx_free; /* only used on 10/100Mbit */ | ||||
| 	u16 rx_cur; | ||||
| 
 | ||||
| 	struct greth_regs *regs;	/* Address of controller registers. */ | ||||
| 	struct greth_bd *rx_bd_base;	/* Address of Rx BDs. */ | ||||
| 	struct greth_bd *tx_bd_base;	/* Address of Tx BDs. */ | ||||
| 	dma_addr_t rx_bd_base_phys; | ||||
| 	dma_addr_t tx_bd_base_phys; | ||||
| 
 | ||||
| 	int irq; | ||||
| 
 | ||||
| 	struct device *dev;	        /* Pointer to platform_device->dev */ | ||||
| 	struct net_device *netdev; | ||||
| 	struct napi_struct napi; | ||||
| 	spinlock_t devlock; | ||||
| 
 | ||||
| 	struct phy_device *phy; | ||||
| 	struct mii_bus *mdio; | ||||
| 	int mdio_irqs[PHY_MAX_ADDR]; | ||||
| 	unsigned int link; | ||||
| 	unsigned int speed; | ||||
| 	unsigned int duplex; | ||||
| 
 | ||||
| 	u32 msg_enable; | ||||
| 
 | ||||
| 	u8 phyaddr; | ||||
| 	u8 multicast; | ||||
| 	u8 gbit_mac; | ||||
| 	u8 mdio_int_en; | ||||
| 	u8 edcl; | ||||
| }; | ||||
| 
 | ||||
| #endif | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 awab228
						awab228