mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 11:41:38 -04:00
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
Pull VFS updates from Al Viro,
Misc cleanups all over the place, mainly wrt /proc interfaces (switch
create_proc_entry to proc_create(), get rid of the deprecated
create_proc_read_entry() in favor of using proc_create_data() and
seq_file etc).
7kloc removed.
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (204 commits)
don't bother with deferred freeing of fdtables
proc: Move non-public stuff from linux/proc_fs.h to fs/proc/internal.h
proc: Make the PROC_I() and PDE() macros internal to procfs
proc: Supply a function to remove a proc entry by PDE
take cgroup_open() and cpuset_open() to fs/proc/base.c
ppc: Clean up scanlog
ppc: Clean up rtas_flash driver somewhat
hostap: proc: Use remove_proc_subtree()
drm: proc: Use remove_proc_subtree()
drm: proc: Use minor->index to label things, not PDE->name
drm: Constify drm_proc_list[]
zoran: Don't print proc_dir_entry data in debug
reiserfs: Don't access the proc_dir_entry in r_open(), r_start() r_show()
proc: Supply an accessor for getting the data from a PDE's parent
airo: Use remove_proc_subtree()
rtl8192u: Don't need to save device proc dir PDE
rtl8187se: Use a dir under /proc/net/r8180/
proc: Add proc_mkdir_data()
proc: Move some bits from linux/proc_fs.h to linux/{of.h,signal.h,tty.h}
proc: Move PDE_NET() to fs/proc/proc_net.c
...
This commit is contained in:
commit
20b4fb4852
385 changed files with 7396 additions and 14540 deletions
|
|
@ -221,7 +221,7 @@ static int proc_udc_show(struct seq_file *s, void *unused)
|
|||
|
||||
static int proc_udc_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return single_open(file, proc_udc_show, PDE(inode)->data);
|
||||
return single_open(file, proc_udc_show, PDE_DATA(inode));
|
||||
}
|
||||
|
||||
static const struct file_operations proc_ops = {
|
||||
|
|
|
|||
|
|
@ -727,7 +727,6 @@ static long ffs_ep0_ioctl(struct file *file, unsigned code, unsigned long value)
|
|||
}
|
||||
|
||||
static const struct file_operations ffs_ep0_operations = {
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = no_llseek,
|
||||
|
||||
.open = ffs_ep0_open,
|
||||
|
|
@ -947,7 +946,6 @@ static long ffs_epfile_ioctl(struct file *file, unsigned code,
|
|||
}
|
||||
|
||||
static const struct file_operations ffs_epfile_operations = {
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = no_llseek,
|
||||
|
||||
.open = ffs_epfile_open,
|
||||
|
|
|
|||
|
|
@ -2010,47 +2010,37 @@ static int fsl_udc_stop(struct usb_gadget *g,
|
|||
|
||||
static const char proc_filename[] = "driver/fsl_usb2_udc";
|
||||
|
||||
static int fsl_proc_read(char *page, char **start, off_t off, int count,
|
||||
int *eof, void *_dev)
|
||||
static int fsl_proc_read(struct seq_file *m, void *v)
|
||||
{
|
||||
char *buf = page;
|
||||
char *next = buf;
|
||||
unsigned size = count;
|
||||
unsigned long flags;
|
||||
int t, i;
|
||||
int i;
|
||||
u32 tmp_reg;
|
||||
struct fsl_ep *ep = NULL;
|
||||
struct fsl_req *req;
|
||||
|
||||
struct fsl_udc *udc = udc_controller;
|
||||
if (off != 0)
|
||||
return 0;
|
||||
|
||||
spin_lock_irqsave(&udc->lock, flags);
|
||||
|
||||
/* ------basic driver information ---- */
|
||||
t = scnprintf(next, size,
|
||||
seq_printf(m,
|
||||
DRIVER_DESC "\n"
|
||||
"%s version: %s\n"
|
||||
"Gadget driver: %s\n\n",
|
||||
driver_name, DRIVER_VERSION,
|
||||
udc->driver ? udc->driver->driver.name : "(none)");
|
||||
size -= t;
|
||||
next += t;
|
||||
|
||||
/* ------ DR Registers ----- */
|
||||
tmp_reg = fsl_readl(&dr_regs->usbcmd);
|
||||
t = scnprintf(next, size,
|
||||
seq_printf(m,
|
||||
"USBCMD reg:\n"
|
||||
"SetupTW: %d\n"
|
||||
"Run/Stop: %s\n\n",
|
||||
(tmp_reg & USB_CMD_SUTW) ? 1 : 0,
|
||||
(tmp_reg & USB_CMD_RUN_STOP) ? "Run" : "Stop");
|
||||
size -= t;
|
||||
next += t;
|
||||
|
||||
tmp_reg = fsl_readl(&dr_regs->usbsts);
|
||||
t = scnprintf(next, size,
|
||||
seq_printf(m,
|
||||
"USB Status Reg:\n"
|
||||
"Dr Suspend: %d Reset Received: %d System Error: %s "
|
||||
"USB Error Interrupt: %s\n\n",
|
||||
|
|
@ -2058,11 +2048,9 @@ static int fsl_proc_read(char *page, char **start, off_t off, int count,
|
|||
(tmp_reg & USB_STS_RESET) ? 1 : 0,
|
||||
(tmp_reg & USB_STS_SYS_ERR) ? "Err" : "Normal",
|
||||
(tmp_reg & USB_STS_ERR) ? "Err detected" : "No err");
|
||||
size -= t;
|
||||
next += t;
|
||||
|
||||
tmp_reg = fsl_readl(&dr_regs->usbintr);
|
||||
t = scnprintf(next, size,
|
||||
seq_printf(m,
|
||||
"USB Interrupt Enable Reg:\n"
|
||||
"Sleep Enable: %d SOF Received Enable: %d "
|
||||
"Reset Enable: %d\n"
|
||||
|
|
@ -2076,33 +2064,25 @@ static int fsl_proc_read(char *page, char **start, off_t off, int count,
|
|||
(tmp_reg & USB_INTR_PTC_DETECT_EN) ? 1 : 0,
|
||||
(tmp_reg & USB_INTR_ERR_INT_EN) ? 1 : 0,
|
||||
(tmp_reg & USB_INTR_INT_EN) ? 1 : 0);
|
||||
size -= t;
|
||||
next += t;
|
||||
|
||||
tmp_reg = fsl_readl(&dr_regs->frindex);
|
||||
t = scnprintf(next, size,
|
||||
seq_printf(m,
|
||||
"USB Frame Index Reg: Frame Number is 0x%x\n\n",
|
||||
(tmp_reg & USB_FRINDEX_MASKS));
|
||||
size -= t;
|
||||
next += t;
|
||||
|
||||
tmp_reg = fsl_readl(&dr_regs->deviceaddr);
|
||||
t = scnprintf(next, size,
|
||||
seq_printf(m,
|
||||
"USB Device Address Reg: Device Addr is 0x%x\n\n",
|
||||
(tmp_reg & USB_DEVICE_ADDRESS_MASK));
|
||||
size -= t;
|
||||
next += t;
|
||||
|
||||
tmp_reg = fsl_readl(&dr_regs->endpointlistaddr);
|
||||
t = scnprintf(next, size,
|
||||
seq_printf(m,
|
||||
"USB Endpoint List Address Reg: "
|
||||
"Device Addr is 0x%x\n\n",
|
||||
(tmp_reg & USB_EP_LIST_ADDRESS_MASK));
|
||||
size -= t;
|
||||
next += t;
|
||||
|
||||
tmp_reg = fsl_readl(&dr_regs->portsc1);
|
||||
t = scnprintf(next, size,
|
||||
seq_printf(m,
|
||||
"USB Port Status&Control Reg:\n"
|
||||
"Port Transceiver Type : %s Port Speed: %s\n"
|
||||
"PHY Low Power Suspend: %s Port Reset: %s "
|
||||
|
|
@ -2111,7 +2091,7 @@ static int fsl_proc_read(char *page, char **start, off_t off, int count,
|
|||
"Port Enable/Disable Change: %s\n"
|
||||
"Port Enabled/Disabled: %s "
|
||||
"Current Connect Status: %s\n\n", ( {
|
||||
char *s;
|
||||
const char *s;
|
||||
switch (tmp_reg & PORTSCX_PTS_FSLS) {
|
||||
case PORTSCX_PTS_UTMI:
|
||||
s = "UTMI"; break;
|
||||
|
|
@ -2137,13 +2117,11 @@ static int fsl_proc_read(char *page, char **start, off_t off, int count,
|
|||
"Not correct",
|
||||
(tmp_reg & PORTSCX_CURRENT_CONNECT_STATUS) ?
|
||||
"Attached" : "Not-Att");
|
||||
size -= t;
|
||||
next += t;
|
||||
|
||||
tmp_reg = fsl_readl(&dr_regs->usbmode);
|
||||
t = scnprintf(next, size,
|
||||
seq_printf(m,
|
||||
"USB Mode Reg: Controller Mode is: %s\n\n", ( {
|
||||
char *s;
|
||||
const char *s;
|
||||
switch (tmp_reg & USB_MODE_CTRL_MODE_HOST) {
|
||||
case USB_MODE_CTRL_MODE_IDLE:
|
||||
s = "Idle"; break;
|
||||
|
|
@ -2156,103 +2134,87 @@ static int fsl_proc_read(char *page, char **start, off_t off, int count,
|
|||
}
|
||||
s;
|
||||
} ));
|
||||
size -= t;
|
||||
next += t;
|
||||
|
||||
tmp_reg = fsl_readl(&dr_regs->endptsetupstat);
|
||||
t = scnprintf(next, size,
|
||||
seq_printf(m,
|
||||
"Endpoint Setup Status Reg: SETUP on ep 0x%x\n\n",
|
||||
(tmp_reg & EP_SETUP_STATUS_MASK));
|
||||
size -= t;
|
||||
next += t;
|
||||
|
||||
for (i = 0; i < udc->max_ep / 2; i++) {
|
||||
tmp_reg = fsl_readl(&dr_regs->endptctrl[i]);
|
||||
t = scnprintf(next, size, "EP Ctrl Reg [0x%x]: = [0x%x]\n",
|
||||
i, tmp_reg);
|
||||
size -= t;
|
||||
next += t;
|
||||
seq_printf(m, "EP Ctrl Reg [0x%x]: = [0x%x]\n", i, tmp_reg);
|
||||
}
|
||||
tmp_reg = fsl_readl(&dr_regs->endpointprime);
|
||||
t = scnprintf(next, size, "EP Prime Reg = [0x%x]\n\n", tmp_reg);
|
||||
size -= t;
|
||||
next += t;
|
||||
seq_printf(m, "EP Prime Reg = [0x%x]\n\n", tmp_reg);
|
||||
|
||||
#ifndef CONFIG_ARCH_MXC
|
||||
if (udc->pdata->have_sysif_regs) {
|
||||
tmp_reg = usb_sys_regs->snoop1;
|
||||
t = scnprintf(next, size, "Snoop1 Reg : = [0x%x]\n\n", tmp_reg);
|
||||
size -= t;
|
||||
next += t;
|
||||
seq_printf(m, "Snoop1 Reg : = [0x%x]\n\n", tmp_reg);
|
||||
|
||||
tmp_reg = usb_sys_regs->control;
|
||||
t = scnprintf(next, size, "General Control Reg : = [0x%x]\n\n",
|
||||
tmp_reg);
|
||||
size -= t;
|
||||
next += t;
|
||||
seq_printf(m, "General Control Reg : = [0x%x]\n\n", tmp_reg);
|
||||
}
|
||||
#endif
|
||||
|
||||
/* ------fsl_udc, fsl_ep, fsl_request structure information ----- */
|
||||
ep = &udc->eps[0];
|
||||
t = scnprintf(next, size, "For %s Maxpkt is 0x%x index is 0x%x\n",
|
||||
seq_printf(m, "For %s Maxpkt is 0x%x index is 0x%x\n",
|
||||
ep->ep.name, ep_maxpacket(ep), ep_index(ep));
|
||||
size -= t;
|
||||
next += t;
|
||||
|
||||
if (list_empty(&ep->queue)) {
|
||||
t = scnprintf(next, size, "its req queue is empty\n\n");
|
||||
size -= t;
|
||||
next += t;
|
||||
seq_puts(m, "its req queue is empty\n\n");
|
||||
} else {
|
||||
list_for_each_entry(req, &ep->queue, queue) {
|
||||
t = scnprintf(next, size,
|
||||
seq_printf(m,
|
||||
"req %p actual 0x%x length 0x%x buf %p\n",
|
||||
&req->req, req->req.actual,
|
||||
req->req.length, req->req.buf);
|
||||
size -= t;
|
||||
next += t;
|
||||
}
|
||||
}
|
||||
/* other gadget->eplist ep */
|
||||
list_for_each_entry(ep, &udc->gadget.ep_list, ep.ep_list) {
|
||||
if (ep->ep.desc) {
|
||||
t = scnprintf(next, size,
|
||||
seq_printf(m,
|
||||
"\nFor %s Maxpkt is 0x%x "
|
||||
"index is 0x%x\n",
|
||||
ep->ep.name, ep_maxpacket(ep),
|
||||
ep_index(ep));
|
||||
size -= t;
|
||||
next += t;
|
||||
|
||||
if (list_empty(&ep->queue)) {
|
||||
t = scnprintf(next, size,
|
||||
"its req queue is empty\n\n");
|
||||
size -= t;
|
||||
next += t;
|
||||
seq_puts(m, "its req queue is empty\n\n");
|
||||
} else {
|
||||
list_for_each_entry(req, &ep->queue, queue) {
|
||||
t = scnprintf(next, size,
|
||||
seq_printf(m,
|
||||
"req %p actual 0x%x length "
|
||||
"0x%x buf %p\n",
|
||||
&req->req, req->req.actual,
|
||||
req->req.length, req->req.buf);
|
||||
size -= t;
|
||||
next += t;
|
||||
} /* end for each_entry of ep req */
|
||||
} /* end for else */
|
||||
} /* end for if(ep->queue) */
|
||||
} /* end (ep->desc) */
|
||||
} /* end for each_entry of ep req */
|
||||
} /* end for else */
|
||||
} /* end for if(ep->queue) */
|
||||
} /* end (ep->desc) */
|
||||
|
||||
spin_unlock_irqrestore(&udc->lock, flags);
|
||||
|
||||
*eof = 1;
|
||||
return count - size;
|
||||
return 0;
|
||||
}
|
||||
|
||||
#define create_proc_file() create_proc_read_entry(proc_filename, \
|
||||
0, NULL, fsl_proc_read, NULL)
|
||||
/*
|
||||
* seq_file wrappers for procfile show routines.
|
||||
*/
|
||||
static int fsl_proc_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return single_open(file, fsl_proc_read, NULL);
|
||||
}
|
||||
|
||||
static const struct file_operations fsl_proc_fops = {
|
||||
.open = fsl_proc_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = seq_release,
|
||||
};
|
||||
|
||||
#define create_proc_file() proc_create(proc_filename, 0, NULL, &fsl_proc_fops)
|
||||
#define remove_proc_file() remove_proc_entry(proc_filename, NULL)
|
||||
|
||||
#else /* !CONFIG_USB_GADGET_DEBUG_FILES */
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@
|
|||
#include <linux/list.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/proc_fs.h>
|
||||
#include <linux/seq_file.h>
|
||||
#include <linux/device.h>
|
||||
#include <linux/usb/ch9.h>
|
||||
#include <linux/usb/gadget.h>
|
||||
|
|
@ -1005,7 +1006,7 @@ static const struct usb_gadget_ops goku_ops = {
|
|||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
||||
static inline char *dmastr(void)
|
||||
static inline const char *dmastr(void)
|
||||
{
|
||||
if (use_dma == 0)
|
||||
return "(dma disabled)";
|
||||
|
|
@ -1022,13 +1023,10 @@ static const char proc_node_name [] = "driver/udc";
|
|||
#define FOURBITS "%s%s%s%s"
|
||||
#define EIGHTBITS FOURBITS FOURBITS
|
||||
|
||||
static void
|
||||
dump_intmask(const char *label, u32 mask, char **next, unsigned *size)
|
||||
static void dump_intmask(struct seq_file *m, const char *label, u32 mask)
|
||||
{
|
||||
int t;
|
||||
|
||||
/* int_status is the same format ... */
|
||||
t = scnprintf(*next, *size,
|
||||
seq_printf(m,
|
||||
"%s %05X =" FOURBITS EIGHTBITS EIGHTBITS "\n",
|
||||
label, mask,
|
||||
(mask & INT_PWRDETECT) ? " power" : "",
|
||||
|
|
@ -1055,33 +1053,23 @@ dump_intmask(const char *label, u32 mask, char **next, unsigned *size)
|
|||
(mask & INT_ENDPOINT0) ? " ep0" : "",
|
||||
(mask & INT_USBRESET) ? " reset" : "",
|
||||
(mask & INT_SUSPEND) ? " suspend" : "");
|
||||
*size -= t;
|
||||
*next += t;
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
udc_proc_read(char *buffer, char **start, off_t off, int count,
|
||||
int *eof, void *_dev)
|
||||
static int udc_proc_read(struct seq_file *m, void *v)
|
||||
{
|
||||
char *buf = buffer;
|
||||
struct goku_udc *dev = _dev;
|
||||
struct goku_udc *dev = m->private;
|
||||
struct goku_udc_regs __iomem *regs = dev->regs;
|
||||
char *next = buf;
|
||||
unsigned size = count;
|
||||
unsigned long flags;
|
||||
int i, t, is_usb_connected;
|
||||
int i, is_usb_connected;
|
||||
u32 tmp;
|
||||
|
||||
if (off != 0)
|
||||
return 0;
|
||||
|
||||
local_irq_save(flags);
|
||||
|
||||
/* basic device status */
|
||||
tmp = readl(®s->power_detect);
|
||||
is_usb_connected = tmp & PW_DETECT;
|
||||
t = scnprintf(next, size,
|
||||
seq_printf(m,
|
||||
"%s - %s\n"
|
||||
"%s version: %s %s\n"
|
||||
"Gadget driver: %s\n"
|
||||
|
|
@ -1093,7 +1081,7 @@ udc_proc_read(char *buffer, char **start, off_t off, int count,
|
|||
is_usb_connected
|
||||
? ((tmp & PW_PULLUP) ? "full speed" : "powered")
|
||||
: "disconnected",
|
||||
({char *state;
|
||||
({const char *state;
|
||||
switch(dev->ep0state){
|
||||
case EP0_DISCONNECT: state = "ep0_disconnect"; break;
|
||||
case EP0_IDLE: state = "ep0_idle"; break;
|
||||
|
|
@ -1105,27 +1093,24 @@ udc_proc_read(char *buffer, char **start, off_t off, int count,
|
|||
default: state = "ep0_?"; break;
|
||||
} state; })
|
||||
);
|
||||
size -= t;
|
||||
next += t;
|
||||
|
||||
dump_intmask("int_status", readl(®s->int_status), &next, &size);
|
||||
dump_intmask("int_enable", readl(®s->int_enable), &next, &size);
|
||||
dump_intmask(m, "int_status", readl(®s->int_status));
|
||||
dump_intmask(m, "int_enable", readl(®s->int_enable));
|
||||
|
||||
if (!is_usb_connected || !dev->driver || (tmp & PW_PULLUP) == 0)
|
||||
goto done;
|
||||
|
||||
/* registers for (active) device and ep0 */
|
||||
t = scnprintf(next, size, "\nirqs %lu\ndataset %02x "
|
||||
if (seq_printf(m, "\nirqs %lu\ndataset %02x "
|
||||
"single.bcs %02x.%02x state %x addr %u\n",
|
||||
dev->irqs, readl(®s->DataSet),
|
||||
readl(®s->EPxSingle), readl(®s->EPxBCS),
|
||||
readl(®s->UsbState),
|
||||
readl(®s->address));
|
||||
size -= t;
|
||||
next += t;
|
||||
readl(®s->address)) < 0)
|
||||
goto done;
|
||||
|
||||
tmp = readl(®s->dma_master);
|
||||
t = scnprintf(next, size,
|
||||
if (seq_printf(m,
|
||||
"dma %03X =" EIGHTBITS "%s %s\n", tmp,
|
||||
(tmp & MST_EOPB_DIS) ? " eopb-" : "",
|
||||
(tmp & MST_EOPB_ENA) ? " eopb+" : "",
|
||||
|
|
@ -1140,9 +1125,8 @@ udc_proc_read(char *buffer, char **start, off_t off, int count,
|
|||
(tmp & MST_WR_ENA) ? " OUT" : "",
|
||||
(tmp & MST_CONNECTION)
|
||||
? "ep1in/ep2out"
|
||||
: "ep1out/ep2in");
|
||||
size -= t;
|
||||
next += t;
|
||||
: "ep1out/ep2in") < 0)
|
||||
goto done;
|
||||
|
||||
/* dump endpoint queues */
|
||||
for (i = 0; i < 4; i++) {
|
||||
|
|
@ -1153,7 +1137,7 @@ udc_proc_read(char *buffer, char **start, off_t off, int count,
|
|||
continue;
|
||||
|
||||
tmp = readl(ep->reg_status);
|
||||
t = scnprintf(next, size,
|
||||
if (seq_printf(m,
|
||||
"%s %s max %u %s, irqs %lu, "
|
||||
"status %02x (%s) " FOURBITS "\n",
|
||||
ep->ep.name,
|
||||
|
|
@ -1186,18 +1170,12 @@ udc_proc_read(char *buffer, char **start, off_t off, int count,
|
|||
(tmp & EPxSTATUS_SUSPEND) ? " suspend" : "",
|
||||
(tmp & EPxSTATUS_FIFO_DISABLE) ? " disable" : "",
|
||||
(tmp & EPxSTATUS_STAGE_ERROR) ? " ep0stat" : ""
|
||||
);
|
||||
if (t <= 0 || t > size)
|
||||
) < 0)
|
||||
goto done;
|
||||
size -= t;
|
||||
next += t;
|
||||
|
||||
if (list_empty(&ep->queue)) {
|
||||
t = scnprintf(next, size, "\t(nothing queued)\n");
|
||||
if (t <= 0 || t > size)
|
||||
if (seq_puts(m, "\t(nothing queued)\n") < 0)
|
||||
goto done;
|
||||
size -= t;
|
||||
next += t;
|
||||
continue;
|
||||
}
|
||||
list_for_each_entry(req, &ep->queue, queue) {
|
||||
|
|
@ -1211,23 +1189,34 @@ udc_proc_read(char *buffer, char **start, off_t off, int count,
|
|||
} else
|
||||
tmp = req->req.actual;
|
||||
|
||||
t = scnprintf(next, size,
|
||||
if (seq_printf(m,
|
||||
"\treq %p len %u/%u buf %p\n",
|
||||
&req->req, tmp, req->req.length,
|
||||
req->req.buf);
|
||||
if (t <= 0 || t > size)
|
||||
req->req.buf) < 0)
|
||||
goto done;
|
||||
size -= t;
|
||||
next += t;
|
||||
}
|
||||
}
|
||||
|
||||
done:
|
||||
local_irq_restore(flags);
|
||||
*eof = 1;
|
||||
return count - size;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* seq_file wrappers for procfile show routines.
|
||||
*/
|
||||
static int udc_proc_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return single_open(file, udc_proc_read, PDE_DATA(file_inode(file)));
|
||||
}
|
||||
|
||||
static const struct file_operations udc_proc_fops = {
|
||||
.open = udc_proc_open,
|
||||
.read = seq_read,
|
||||
.llseek = seq_lseek,
|
||||
.release = seq_release,
|
||||
};
|
||||
|
||||
#endif /* CONFIG_USB_GADGET_DEBUG_FILES */
|
||||
|
||||
/*-------------------------------------------------------------------------*/
|
||||
|
|
@ -1796,7 +1785,7 @@ static int goku_probe(struct pci_dev *pdev, const struct pci_device_id *id)
|
|||
|
||||
|
||||
#ifdef CONFIG_USB_GADGET_DEBUG_FILES
|
||||
create_proc_read_entry(proc_node_name, 0, NULL, udc_proc_read, dev);
|
||||
proc_create_data(proc_node_name, 0, NULL, &udc_proc_fops, dev);
|
||||
#endif
|
||||
|
||||
retval = usb_add_gadget_udc_release(&pdev->dev, &dev->gadget,
|
||||
|
|
|
|||
|
|
@ -887,7 +887,6 @@ ep_open (struct inode *inode, struct file *fd)
|
|||
|
||||
/* used before endpoint configuration */
|
||||
static const struct file_operations ep_config_operations = {
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = no_llseek,
|
||||
|
||||
.open = ep_open,
|
||||
|
|
@ -1940,7 +1939,6 @@ dev_open (struct inode *inode, struct file *fd)
|
|||
}
|
||||
|
||||
static const struct file_operations dev_init_operations = {
|
||||
.owner = THIS_MODULE,
|
||||
.llseek = no_llseek,
|
||||
|
||||
.open = dev_open,
|
||||
|
|
|
|||
|
|
@ -565,7 +565,7 @@ static int proc_udc_show(struct seq_file *s, void *unused)
|
|||
|
||||
static int proc_udc_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return single_open(file, proc_udc_show, PDE(inode)->data);
|
||||
return single_open(file, proc_udc_show, PDE_DATA(inode));
|
||||
}
|
||||
|
||||
static const struct file_operations proc_ops = {
|
||||
|
|
|
|||
|
|
@ -1065,7 +1065,7 @@ static int rndis_proc_show(struct seq_file *m, void *v)
|
|||
static ssize_t rndis_proc_write(struct file *file, const char __user *buffer,
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
rndis_params *p = PDE(file_inode(file))->data;
|
||||
rndis_params *p = PDE_DATA(file_inode(file));
|
||||
u32 speed = 0;
|
||||
int i, fl_speed = 0;
|
||||
|
||||
|
|
@ -1109,7 +1109,7 @@ static ssize_t rndis_proc_write(struct file *file, const char __user *buffer,
|
|||
|
||||
static int rndis_proc_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return single_open(file, rndis_proc_show, PDE(inode)->data);
|
||||
return single_open(file, rndis_proc_show, PDE_DATA(inode));
|
||||
}
|
||||
|
||||
static const struct file_operations rndis_proc_fops = {
|
||||
|
|
|
|||
|
|
@ -2175,7 +2175,7 @@ static int proc_isp1362_show(struct seq_file *s, void *unused)
|
|||
|
||||
static int proc_isp1362_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return single_open(file, proc_isp1362_show, PDE(inode)->data);
|
||||
return single_open(file, proc_isp1362_show, PDE_DATA(inode));
|
||||
}
|
||||
|
||||
static const struct file_operations proc_ops = {
|
||||
|
|
@ -2192,14 +2192,11 @@ static void create_debug_file(struct isp1362_hcd *isp1362_hcd)
|
|||
{
|
||||
struct proc_dir_entry *pde;
|
||||
|
||||
pde = create_proc_entry(proc_filename, 0, NULL);
|
||||
pde = proc_create_data(proc_filename, 0, NULL, &proc_ops, isp1362_hcd);
|
||||
if (pde == NULL) {
|
||||
pr_warning("%s: Failed to create debug file '%s'\n", __func__, proc_filename);
|
||||
return;
|
||||
}
|
||||
|
||||
pde->proc_fops = &proc_ops;
|
||||
pde->data = isp1362_hcd;
|
||||
isp1362_hcd->pde = pde;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1494,7 +1494,7 @@ static int proc_sl811h_show(struct seq_file *s, void *unused)
|
|||
|
||||
static int proc_sl811h_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
return single_open(file, proc_sl811h_show, PDE(inode)->data);
|
||||
return single_open(file, proc_sl811h_show, PDE_DATA(inode));
|
||||
}
|
||||
|
||||
static const struct file_operations proc_ops = {
|
||||
|
|
|
|||
|
|
@ -407,8 +407,6 @@ static int yurex_release(struct inode *inode, struct file *file)
|
|||
if (dev == NULL)
|
||||
return -ENODEV;
|
||||
|
||||
yurex_fasync(-1, file, 0);
|
||||
|
||||
/* decrement the count on our device */
|
||||
kref_put(&dev->kref, yurex_delete);
|
||||
return 0;
|
||||
|
|
|
|||
|
|
@ -437,22 +437,21 @@ void usb_stor_report_bus_reset(struct us_data *us)
|
|||
* /proc/scsi/ functions
|
||||
***********************************************************************/
|
||||
|
||||
static int write_info(struct Scsi_Host *host, char *buffer, int length)
|
||||
{
|
||||
/* if someone is sending us data, just throw it away */
|
||||
return length;
|
||||
}
|
||||
|
||||
/* we use this macro to help us write into the buffer */
|
||||
#undef SPRINTF
|
||||
#define SPRINTF(args...) \
|
||||
do { if (pos < buffer+length) pos += sprintf(pos, ## args); } while (0)
|
||||
#define SPRINTF(args...) seq_printf(m, ## args)
|
||||
|
||||
static int proc_info (struct Scsi_Host *host, char *buffer,
|
||||
char **start, off_t offset, int length, int inout)
|
||||
static int show_info (struct seq_file *m, struct Scsi_Host *host)
|
||||
{
|
||||
struct us_data *us = host_to_us(host);
|
||||
char *pos = buffer;
|
||||
const char *string;
|
||||
|
||||
/* if someone is sending us data, just throw it away */
|
||||
if (inout)
|
||||
return length;
|
||||
|
||||
/* print the controller name */
|
||||
SPRINTF(" Host scsi%d: usb-storage\n", host->host_no);
|
||||
|
||||
|
|
@ -482,28 +481,14 @@ static int proc_info (struct Scsi_Host *host, char *buffer,
|
|||
SPRINTF(" Transport: %s\n", us->transport_name);
|
||||
|
||||
/* show the device flags */
|
||||
if (pos < buffer + length) {
|
||||
pos += sprintf(pos, " Quirks:");
|
||||
SPRINTF(" Quirks:");
|
||||
|
||||
#define US_FLAG(name, value) \
|
||||
if (us->fflags & value) pos += sprintf(pos, " " #name);
|
||||
if (us->fflags & value) seq_printf(m, " " #name);
|
||||
US_DO_ALL_FLAGS
|
||||
#undef US_FLAG
|
||||
|
||||
*(pos++) = '\n';
|
||||
}
|
||||
|
||||
/*
|
||||
* Calculate start of next buffer, and return value.
|
||||
*/
|
||||
*start = buffer + offset;
|
||||
|
||||
if ((pos - buffer) < offset)
|
||||
return (0);
|
||||
else if ((pos - buffer - offset) < length)
|
||||
return (pos - buffer - offset);
|
||||
else
|
||||
return (length);
|
||||
seq_putc(m, '\n');
|
||||
return 0;
|
||||
}
|
||||
|
||||
/***********************************************************************
|
||||
|
|
@ -548,7 +533,8 @@ struct scsi_host_template usb_stor_host_template = {
|
|||
/* basic userland interface stuff */
|
||||
.name = "usb-storage",
|
||||
.proc_name = "usb-storage",
|
||||
.proc_info = proc_info,
|
||||
.show_info = show_info,
|
||||
.write_info = write_info,
|
||||
.info = host_info,
|
||||
|
||||
/* command interface -- queued only */
|
||||
|
|
|
|||
Loading…
Reference in a new issue