OpenWrt – Blame information for rev 3
?pathlinks?
Rev | Author | Line No. | Line |
---|---|---|---|
1 | office | 1 | /* Copyright Statement: |
2 | * |
||
3 | * This software/firmware and related documentation ("MediaTek Software") are |
||
4 | * protected under relevant copyright laws. The information contained herein |
||
5 | * is confidential and proprietary to MediaTek Inc. and/or its licensors. |
||
6 | * Without the prior written permission of MediaTek inc. and/or its licensors, |
||
7 | * any reproduction, modification, use or disclosure of MediaTek Software, |
||
8 | * and information contained herein, in whole or in part, shall be strictly prohibited. |
||
9 | * |
||
10 | * MediaTek Inc. (C) 2010. All rights reserved. |
||
11 | * |
||
12 | * BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES |
||
13 | * THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE") |
||
14 | * RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER ON |
||
15 | * AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES, |
||
16 | * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF |
||
17 | * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT. |
||
18 | * NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE |
||
19 | * SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR |
||
20 | * SUPPLIED WITH THE MEDIATEK SOFTWARE, AND RECEIVER AGREES TO LOOK ONLY TO SUCH |
||
21 | * THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES |
||
22 | * THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES |
||
23 | * CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK |
||
24 | * SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR |
||
25 | * STANDARD OR OPEN FORUM. RECEIVER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND |
||
26 | * CUMULATIVE LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE, |
||
27 | * AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE, |
||
28 | * OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY RECEIVER TO |
||
29 | * MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. |
||
30 | * |
||
31 | * The following software/firmware and/or related documentation ("MediaTek Software") |
||
32 | * have been modified by MediaTek Inc. All revisions are subject to any receiver's |
||
33 | * applicable license agreements with MediaTek Inc. |
||
34 | */ |
||
35 | #ifndef __MT_MSDC_DEUBG__ |
||
36 | #define __MT_MSDC_DEUBG__ |
||
37 | |||
38 | //========================== |
||
39 | extern u32 sdio_pro_enable; |
||
40 | /* for a type command, e.g. CMD53, 2 blocks */ |
||
41 | struct cmd_profile { |
||
3 | office | 42 | u32 max_tc; /* Max tick count */ |
43 | u32 min_tc; |
||
44 | u32 tot_tc; /* total tick count */ |
||
45 | u32 tot_bytes; |
||
46 | u32 count; /* the counts of the command */ |
||
1 | office | 47 | }; |
48 | |||
49 | /* dump when total_tc and total_bytes */ |
||
50 | struct sdio_profile { |
||
3 | office | 51 | u32 total_tc; /* total tick count of CMD52 and CMD53 */ |
52 | u32 total_tx_bytes; /* total bytes of CMD53 Tx */ |
||
53 | u32 total_rx_bytes; /* total bytes of CMD53 Rx */ |
||
54 | |||
55 | /*CMD52*/ |
||
56 | struct cmd_profile cmd52_tx; |
||
57 | struct cmd_profile cmd52_rx; |
||
1 | office | 58 | |
3 | office | 59 | /*CMD53 in byte unit */ |
60 | struct cmd_profile cmd53_tx_byte[512]; |
||
61 | struct cmd_profile cmd53_rx_byte[512]; |
||
62 | |||
63 | /*CMD53 in block unit */ |
||
64 | struct cmd_profile cmd53_tx_blk[100]; |
||
65 | struct cmd_profile cmd53_rx_blk[100]; |
||
1 | office | 66 | }; |
67 | |||
68 | //========================== |
||
3 | office | 69 | typedef enum { |
70 | SD_TOOL_ZONE = 0, |
||
71 | SD_TOOL_DMA_SIZE = 1, |
||
72 | SD_TOOL_PM_ENABLE = 2, |
||
73 | SD_TOOL_SDIO_PROFILE = 3, |
||
74 | } msdc_dbg; |
||
1 | office | 75 | |
3 | office | 76 | typedef enum { |
77 | MODE_PIO = 0, |
||
78 | MODE_DMA = 1, |
||
79 | MODE_SIZE_DEP = 2, |
||
80 | } msdc_mode; |
||
81 | extern msdc_mode drv_mode[4]; |
||
82 | extern u32 dma_size[4]; |
||
1 | office | 83 | |
84 | /* Debug message event */ |
||
85 | #define DBG_EVT_NONE (0) /* No event */ |
||
86 | #define DBG_EVT_DMA (1 << 0) /* DMA related event */ |
||
87 | #define DBG_EVT_CMD (1 << 1) /* MSDC CMD related event */ |
||
88 | #define DBG_EVT_RSP (1 << 2) /* MSDC CMD RSP related event */ |
||
89 | #define DBG_EVT_INT (1 << 3) /* MSDC INT event */ |
||
90 | #define DBG_EVT_CFG (1 << 4) /* MSDC CFG event */ |
||
91 | #define DBG_EVT_FUC (1 << 5) /* Function event */ |
||
92 | #define DBG_EVT_OPS (1 << 6) /* Read/Write operation event */ |
||
93 | #define DBG_EVT_FIO (1 << 7) /* FIFO operation event */ |
||
94 | #define DBG_EVT_WRN (1 << 8) /* Warning event */ |
||
95 | #define DBG_EVT_PWR (1 << 9) /* Power event */ |
||
96 | #define DBG_EVT_ALL (0xffffffff) |
||
97 | |||
98 | #define DBG_EVT_MASK (DBG_EVT_ALL) |
||
99 | |||
100 | extern unsigned int sd_debug_zone[4]; |
||
101 | #define TAG "msdc" |
||
102 | #if 0 /* +++ chhung */ |
||
103 | #define BUG_ON(x) \ |
||
104 | do { \ |
||
105 | if (x) { \ |
||
106 | printk("[BUG] %s LINE:%d FILE:%s\n", #x, __LINE__, __FILE__); \ |
||
3 | office | 107 | while(1); \ |
1 | office | 108 | } \ |
3 | office | 109 | }while(0) |
1 | office | 110 | #endif /* end of +++ */ |
111 | |||
112 | #define N_MSG(evt, fmt, args...) |
||
113 | /* |
||
114 | do { \ |
||
115 | if ((DBG_EVT_##evt) & sd_debug_zone[host->id]) { \ |
||
116 | printk(KERN_ERR TAG"%d -> "fmt" <- %s() : L<%d> PID<%s><0x%x>\n", \ |
||
117 | host->id, ##args , __FUNCTION__, __LINE__, current->comm, current->pid); \ |
||
118 | } \ |
||
119 | } while(0) |
||
120 | */ |
||
121 | |||
122 | #define ERR_MSG(fmt, args...) \ |
||
123 | do { \ |
||
3 | office | 124 | printk(KERN_ERR TAG"%d -> "fmt" <- %s() : L<%d> PID<%s><0x%x>\n", \ |
125 | host->id, ##args , __FUNCTION__, __LINE__, current->comm, current->pid); \ |
||
126 | } while(0); |
||
1 | office | 127 | |
128 | #if 1 |
||
3 | office | 129 | //defined CONFIG_MTK_MMC_CD_POLL |
1 | office | 130 | #define INIT_MSG(fmt, args...) |
3 | office | 131 | #define IRQ_MSG(fmt, args...) |
1 | office | 132 | #else |
133 | #define INIT_MSG(fmt, args...) \ |
||
134 | do { \ |
||
3 | office | 135 | printk(KERN_ERR TAG"%d -> "fmt" <- %s() : L<%d> PID<%s><0x%x>\n", \ |
136 | host->id, ##args , __FUNCTION__, __LINE__, current->comm, current->pid); \ |
||
137 | } while(0); |
||
1 | office | 138 | |
139 | /* PID in ISR in not corrent */ |
||
140 | #define IRQ_MSG(fmt, args...) \ |
||
141 | do { \ |
||
3 | office | 142 | printk(KERN_ERR TAG"%d -> "fmt" <- %s() : L<%d>\n", \ |
143 | host->id, ##args , __FUNCTION__, __LINE__); \ |
||
144 | } while(0); |
||
1 | office | 145 | #endif |
146 | |||
3 | office | 147 | int msdc_debug_proc_init(void); |
1 | office | 148 | |
149 | #if 0 /* --- chhung */ |
||
150 | void msdc_init_gpt(void); |
||
151 | extern void GPT_GetCounter64(UINT32 *cntL32, UINT32 *cntH32); |
||
152 | #endif /* end of --- */ |
||
153 | u32 msdc_time_calc(u32 old_L32, u32 old_H32, u32 new_L32, u32 new_H32); |
||
3 | office | 154 | void msdc_performance(u32 opcode, u32 sizes, u32 bRx, u32 ticks); |
1 | office | 155 | |
156 | #endif |