aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2013-04-10 08:23:50 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2013-04-29 15:41:53 -0400
commit77cd02c151cb6b7d81aad4802ee8b98a033863d6 (patch)
tree6b9c93bad1beff92f78a9f36bd3cff9fc7185aa9 /drivers/usb
parent96c7a22ebd2c919ed8fb93bb7c02b60aac099768 (diff)
fsl_udc: Don't use create_proc_read_entry()
Don't use create_proc_read_entry() as that is deprecated, but rather use proc_create_data() and seq_file instead. Signed-off-by: David Howells <dhowells@redhat.com> cc: Li Yang <leoli@freescale.com> cc: Felipe Balbi <balbi@ti.com> cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> cc: linux-usb@vger.kernel.org cc: linuxppc-dev@lists.ozlabs.org Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/gadget/fsl_udc_core.c124
1 files changed, 43 insertions, 81 deletions
diff --git a/drivers/usb/gadget/fsl_udc_core.c b/drivers/usb/gadget/fsl_udc_core.c
index 04d5fef1440c..ede70ffe1ab4 100644
--- a/drivers/usb/gadget/fsl_udc_core.c
+++ b/drivers/usb/gadget/fsl_udc_core.c
@@ -2038,47 +2038,37 @@ static int fsl_udc_stop(struct usb_gadget *g,
2038 2038
2039static const char proc_filename[] = "driver/fsl_usb2_udc"; 2039static const char proc_filename[] = "driver/fsl_usb2_udc";
2040 2040
2041static int fsl_proc_read(char *page, char **start, off_t off, int count, 2041static int fsl_proc_read(struct seq_file *m, void *v)
2042 int *eof, void *_dev)
2043{ 2042{
2044 char *buf = page;
2045 char *next = buf;
2046 unsigned size = count;
2047 unsigned long flags; 2043 unsigned long flags;
2048 int t, i; 2044 int i;
2049 u32 tmp_reg; 2045 u32 tmp_reg;
2050 struct fsl_ep *ep = NULL; 2046 struct fsl_ep *ep = NULL;
2051 struct fsl_req *req; 2047 struct fsl_req *req;
2052 2048
2053 struct fsl_udc *udc = udc_controller; 2049 struct fsl_udc *udc = udc_controller;
2054 if (off != 0)
2055 return 0;
2056 2050
2057 spin_lock_irqsave(&udc->lock, flags); 2051 spin_lock_irqsave(&udc->lock, flags);
2058 2052
2059 /* ------basic driver information ---- */ 2053 /* ------basic driver information ---- */
2060 t = scnprintf(next, size, 2054 seq_printf(m,
2061 DRIVER_DESC "\n" 2055 DRIVER_DESC "\n"
2062 "%s version: %s\n" 2056 "%s version: %s\n"
2063 "Gadget driver: %s\n\n", 2057 "Gadget driver: %s\n\n",
2064 driver_name, DRIVER_VERSION, 2058 driver_name, DRIVER_VERSION,
2065 udc->driver ? udc->driver->driver.name : "(none)"); 2059 udc->driver ? udc->driver->driver.name : "(none)");
2066 size -= t;
2067 next += t;
2068 2060
2069 /* ------ DR Registers ----- */ 2061 /* ------ DR Registers ----- */
2070 tmp_reg = fsl_readl(&dr_regs->usbcmd); 2062 tmp_reg = fsl_readl(&dr_regs->usbcmd);
2071 t = scnprintf(next, size, 2063 seq_printf(m,
2072 "USBCMD reg:\n" 2064 "USBCMD reg:\n"
2073 "SetupTW: %d\n" 2065 "SetupTW: %d\n"
2074 "Run/Stop: %s\n\n", 2066 "Run/Stop: %s\n\n",
2075 (tmp_reg & USB_CMD_SUTW) ? 1 : 0, 2067 (tmp_reg & USB_CMD_SUTW) ? 1 : 0,
2076 (tmp_reg & USB_CMD_RUN_STOP) ? "Run" : "Stop"); 2068 (tmp_reg & USB_CMD_RUN_STOP) ? "Run" : "Stop");
2077 size -= t;
2078 next += t;
2079 2069
2080 tmp_reg = fsl_readl(&dr_regs->usbsts); 2070 tmp_reg = fsl_readl(&dr_regs->usbsts);
2081 t = scnprintf(next, size, 2071 seq_printf(m,
2082 "USB Status Reg:\n" 2072 "USB Status Reg:\n"
2083 "Dr Suspend: %d Reset Received: %d System Error: %s " 2073 "Dr Suspend: %d Reset Received: %d System Error: %s "
2084 "USB Error Interrupt: %s\n\n", 2074 "USB Error Interrupt: %s\n\n",
@@ -2086,11 +2076,9 @@ static int fsl_proc_read(char *page, char **start, off_t off, int count,
2086 (tmp_reg & USB_STS_RESET) ? 1 : 0, 2076 (tmp_reg & USB_STS_RESET) ? 1 : 0,
2087 (tmp_reg & USB_STS_SYS_ERR) ? "Err" : "Normal", 2077 (tmp_reg & USB_STS_SYS_ERR) ? "Err" : "Normal",
2088 (tmp_reg & USB_STS_ERR) ? "Err detected" : "No err"); 2078 (tmp_reg & USB_STS_ERR) ? "Err detected" : "No err");
2089 size -= t;
2090 next += t;
2091 2079
2092 tmp_reg = fsl_readl(&dr_regs->usbintr); 2080 tmp_reg = fsl_readl(&dr_regs->usbintr);
2093 t = scnprintf(next, size, 2081 seq_printf(m,
2094 "USB Interrupt Enable Reg:\n" 2082 "USB Interrupt Enable Reg:\n"
2095 "Sleep Enable: %d SOF Received Enable: %d " 2083 "Sleep Enable: %d SOF Received Enable: %d "
2096 "Reset Enable: %d\n" 2084 "Reset Enable: %d\n"
@@ -2104,33 +2092,25 @@ static int fsl_proc_read(char *page, char **start, off_t off, int count,
2104 (tmp_reg & USB_INTR_PTC_DETECT_EN) ? 1 : 0, 2092 (tmp_reg & USB_INTR_PTC_DETECT_EN) ? 1 : 0,
2105 (tmp_reg & USB_INTR_ERR_INT_EN) ? 1 : 0, 2093 (tmp_reg & USB_INTR_ERR_INT_EN) ? 1 : 0,
2106 (tmp_reg & USB_INTR_INT_EN) ? 1 : 0); 2094 (tmp_reg & USB_INTR_INT_EN) ? 1 : 0);
2107 size -= t;
2108 next += t;
2109 2095
2110 tmp_reg = fsl_readl(&dr_regs->frindex); 2096 tmp_reg = fsl_readl(&dr_regs->frindex);
2111 t = scnprintf(next, size, 2097 seq_printf(m,
2112 "USB Frame Index Reg: Frame Number is 0x%x\n\n", 2098 "USB Frame Index Reg: Frame Number is 0x%x\n\n",
2113 (tmp_reg & USB_FRINDEX_MASKS)); 2099 (tmp_reg & USB_FRINDEX_MASKS));
2114 size -= t;
2115 next += t;
2116 2100
2117 tmp_reg = fsl_readl(&dr_regs->deviceaddr); 2101 tmp_reg = fsl_readl(&dr_regs->deviceaddr);
2118 t = scnprintf(next, size, 2102 seq_printf(m,
2119 "USB Device Address Reg: Device Addr is 0x%x\n\n", 2103 "USB Device Address Reg: Device Addr is 0x%x\n\n",
2120 (tmp_reg & USB_DEVICE_ADDRESS_MASK)); 2104 (tmp_reg & USB_DEVICE_ADDRESS_MASK));
2121 size -= t;
2122 next += t;
2123 2105
2124 tmp_reg = fsl_readl(&dr_regs->endpointlistaddr); 2106 tmp_reg = fsl_readl(&dr_regs->endpointlistaddr);
2125 t = scnprintf(next, size, 2107 seq_printf(m,
2126 "USB Endpoint List Address Reg: " 2108 "USB Endpoint List Address Reg: "
2127 "Device Addr is 0x%x\n\n", 2109 "Device Addr is 0x%x\n\n",
2128 (tmp_reg & USB_EP_LIST_ADDRESS_MASK)); 2110 (tmp_reg & USB_EP_LIST_ADDRESS_MASK));
2129 size -= t;
2130 next += t;
2131 2111
2132 tmp_reg = fsl_readl(&dr_regs->portsc1); 2112 tmp_reg = fsl_readl(&dr_regs->portsc1);
2133 t = scnprintf(next, size, 2113 seq_printf(m,
2134 "USB Port Status&Control Reg:\n" 2114 "USB Port Status&Control Reg:\n"
2135 "Port Transceiver Type : %s Port Speed: %s\n" 2115 "Port Transceiver Type : %s Port Speed: %s\n"
2136 "PHY Low Power Suspend: %s Port Reset: %s " 2116 "PHY Low Power Suspend: %s Port Reset: %s "
@@ -2139,7 +2119,7 @@ static int fsl_proc_read(char *page, char **start, off_t off, int count,
2139 "Port Enable/Disable Change: %s\n" 2119 "Port Enable/Disable Change: %s\n"
2140 "Port Enabled/Disabled: %s " 2120 "Port Enabled/Disabled: %s "
2141 "Current Connect Status: %s\n\n", ( { 2121 "Current Connect Status: %s\n\n", ( {
2142 char *s; 2122 const char *s;
2143 switch (tmp_reg & PORTSCX_PTS_FSLS) { 2123 switch (tmp_reg & PORTSCX_PTS_FSLS) {
2144 case PORTSCX_PTS_UTMI: 2124 case PORTSCX_PTS_UTMI:
2145 s = "UTMI"; break; 2125 s = "UTMI"; break;
@@ -2165,13 +2145,11 @@ static int fsl_proc_read(char *page, char **start, off_t off, int count,
2165 "Not correct", 2145 "Not correct",
2166 (tmp_reg & PORTSCX_CURRENT_CONNECT_STATUS) ? 2146 (tmp_reg & PORTSCX_CURRENT_CONNECT_STATUS) ?
2167 "Attached" : "Not-Att"); 2147 "Attached" : "Not-Att");
2168 size -= t;
2169 next += t;
2170 2148
2171 tmp_reg = fsl_readl(&dr_regs->usbmode); 2149 tmp_reg = fsl_readl(&dr_regs->usbmode);
2172 t = scnprintf(next, size, 2150 seq_printf(m,
2173 "USB Mode Reg: Controller Mode is: %s\n\n", ( { 2151 "USB Mode Reg: Controller Mode is: %s\n\n", ( {
2174 char *s; 2152 const char *s;
2175 switch (tmp_reg & USB_MODE_CTRL_MODE_HOST) { 2153 switch (tmp_reg & USB_MODE_CTRL_MODE_HOST) {
2176 case USB_MODE_CTRL_MODE_IDLE: 2154 case USB_MODE_CTRL_MODE_IDLE:
2177 s = "Idle"; break; 2155 s = "Idle"; break;
@@ -2184,103 +2162,87 @@ static int fsl_proc_read(char *page, char **start, off_t off, int count,
2184 } 2162 }
2185 s; 2163 s;
2186 } )); 2164 } ));
2187 size -= t;
2188 next += t;
2189 2165
2190 tmp_reg = fsl_readl(&dr_regs->endptsetupstat); 2166 tmp_reg = fsl_readl(&dr_regs->endptsetupstat);
2191 t = scnprintf(next, size, 2167 seq_printf(m,
2192 "Endpoint Setup Status Reg: SETUP on ep 0x%x\n\n", 2168 "Endpoint Setup Status Reg: SETUP on ep 0x%x\n\n",
2193 (tmp_reg & EP_SETUP_STATUS_MASK)); 2169 (tmp_reg & EP_SETUP_STATUS_MASK));
2194 size -= t;
2195 next += t;
2196 2170
2197 for (i = 0; i < udc->max_ep / 2; i++) { 2171 for (i = 0; i < udc->max_ep / 2; i++) {
2198 tmp_reg = fsl_readl(&dr_regs->endptctrl[i]); 2172 tmp_reg = fsl_readl(&dr_regs->endptctrl[i]);
2199 t = scnprintf(next, size, "EP Ctrl Reg [0x%x]: = [0x%x]\n", 2173 seq_printf(m, "EP Ctrl Reg [0x%x]: = [0x%x]\n", i, tmp_reg);
2200 i, tmp_reg);
2201 size -= t;
2202 next += t;
2203 } 2174 }
2204 tmp_reg = fsl_readl(&dr_regs->endpointprime); 2175 tmp_reg = fsl_readl(&dr_regs->endpointprime);
2205 t = scnprintf(next, size, "EP Prime Reg = [0x%x]\n\n", tmp_reg); 2176 seq_printf(m, "EP Prime Reg = [0x%x]\n\n", tmp_reg);
2206 size -= t;
2207 next += t;
2208 2177
2209#ifndef CONFIG_ARCH_MXC 2178#ifndef CONFIG_ARCH_MXC
2210 if (udc->pdata->have_sysif_regs) { 2179 if (udc->pdata->have_sysif_regs) {
2211 tmp_reg = usb_sys_regs->snoop1; 2180 tmp_reg = usb_sys_regs->snoop1;
2212 t = scnprintf(next, size, "Snoop1 Reg : = [0x%x]\n\n", tmp_reg); 2181 seq_printf(m, "Snoop1 Reg : = [0x%x]\n\n", tmp_reg);
2213 size -= t;
2214 next += t;
2215 2182
2216 tmp_reg = usb_sys_regs->control; 2183 tmp_reg = usb_sys_regs->control;
2217 t = scnprintf(next, size, "General Control Reg : = [0x%x]\n\n", 2184 seq_printf(m, "General Control Reg : = [0x%x]\n\n", tmp_reg);
2218 tmp_reg);
2219 size -= t;
2220 next += t;
2221 } 2185 }
2222#endif 2186#endif
2223 2187
2224 /* ------fsl_udc, fsl_ep, fsl_request structure information ----- */ 2188 /* ------fsl_udc, fsl_ep, fsl_request structure information ----- */
2225 ep = &udc->eps[0]; 2189 ep = &udc->eps[0];
2226 t = scnprintf(next, size, "For %s Maxpkt is 0x%x index is 0x%x\n", 2190 seq_printf(m, "For %s Maxpkt is 0x%x index is 0x%x\n",
2227 ep->ep.name, ep_maxpacket(ep), ep_index(ep)); 2191 ep->ep.name, ep_maxpacket(ep), ep_index(ep));
2228 size -= t;
2229 next += t;
2230 2192
2231 if (list_empty(&ep->queue)) { 2193 if (list_empty(&ep->queue)) {
2232 t = scnprintf(next, size, "its req queue is empty\n\n"); 2194 seq_puts(m, "its req queue is empty\n\n");
2233 size -= t;
2234 next += t;
2235 } else { 2195 } else {
2236 list_for_each_entry(req, &ep->queue, queue) { 2196 list_for_each_entry(req, &ep->queue, queue) {
2237 t = scnprintf(next, size, 2197 seq_printf(m,
2238 "req %p actual 0x%x length 0x%x buf %p\n", 2198 "req %p actual 0x%x length 0x%x buf %p\n",
2239 &req->req, req->req.actual, 2199 &req->req, req->req.actual,
2240 req->req.length, req->req.buf); 2200 req->req.length, req->req.buf);
2241 size -= t;
2242 next += t;
2243 } 2201 }
2244 } 2202 }
2245 /* other gadget->eplist ep */ 2203 /* other gadget->eplist ep */
2246 list_for_each_entry(ep, &udc->gadget.ep_list, ep.ep_list) { 2204 list_for_each_entry(ep, &udc->gadget.ep_list, ep.ep_list) {
2247 if (ep->ep.desc) { 2205 if (ep->ep.desc) {
2248 t = scnprintf(next, size, 2206 seq_printf(m,
2249 "\nFor %s Maxpkt is 0x%x " 2207 "\nFor %s Maxpkt is 0x%x "
2250 "index is 0x%x\n", 2208 "index is 0x%x\n",
2251 ep->ep.name, ep_maxpacket(ep), 2209 ep->ep.name, ep_maxpacket(ep),
2252 ep_index(ep)); 2210 ep_index(ep));
2253 size -= t;
2254 next += t;
2255 2211
2256 if (list_empty(&ep->queue)) { 2212 if (list_empty(&ep->queue)) {
2257 t = scnprintf(next, size, 2213 seq_puts(m, "its req queue is empty\n\n");
2258 "its req queue is empty\n\n");
2259 size -= t;
2260 next += t;
2261 } else { 2214 } else {
2262 list_for_each_entry(req, &ep->queue, queue) { 2215 list_for_each_entry(req, &ep->queue, queue) {
2263 t = scnprintf(next, size, 2216 seq_printf(m,
2264 "req %p actual 0x%x length " 2217 "req %p actual 0x%x length "
2265 "0x%x buf %p\n", 2218 "0x%x buf %p\n",
2266 &req->req, req->req.actual, 2219 &req->req, req->req.actual,
2267 req->req.length, req->req.buf); 2220 req->req.length, req->req.buf);
2268 size -= t; 2221 } /* end for each_entry of ep req */
2269 next += t; 2222 } /* end for else */
2270 } /* end for each_entry of ep req */ 2223 } /* end for if(ep->queue) */
2271 } /* end for else */ 2224 } /* end (ep->desc) */
2272 } /* end for if(ep->queue) */
2273 } /* end (ep->desc) */
2274 2225
2275 spin_unlock_irqrestore(&udc->lock, flags); 2226 spin_unlock_irqrestore(&udc->lock, flags);
2227 return 0;
2228}
2276 2229
2277 *eof = 1; 2230/*
2278 return count - size; 2231 * seq_file wrappers for procfile show routines.
2232 */
2233static int fsl_proc_open(struct inode *inode, struct file *file)
2234{
2235 return single_open(file, fsl_proc_read, NULL);
2279} 2236}
2280 2237
2281#define create_proc_file() create_proc_read_entry(proc_filename, \ 2238static const struct file_operations fsl_proc_fops = {
2282 0, NULL, fsl_proc_read, NULL) 2239 .open = fsl_proc_open,
2240 .read = seq_read,
2241 .llseek = seq_lseek,
2242 .release = seq_release,
2243};
2283 2244
2245#define create_proc_file() proc_create(proc_filename, 0, NULL, &fsl_proc_fops)
2284#define remove_proc_file() remove_proc_entry(proc_filename, NULL) 2246#define remove_proc_file() remove_proc_entry(proc_filename, NULL)
2285 2247
2286#else /* !CONFIG_USB_GADGET_DEBUG_FILES */ 2248#else /* !CONFIG_USB_GADGET_DEBUG_FILES */