Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
bd009496
cloud-kernel
项目概览
openanolis
/
cloud-kernel
1 年多 前同步成功
通知
160
Star
36
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
2
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
bd009496
编写于
6月 20, 2006
作者:
G
Greg Kroah-Hartman
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[PATCH] USB: convert usb class devices to real devices
Signed-off-by:
N
Greg Kroah-Hartman
<
gregkh@suse.de
>
上级
c182274f
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
9 addition
and
9 deletion
+9
-9
drivers/usb/core/file.c
drivers/usb/core/file.c
+6
-7
include/linux/usb.h
include/linux/usb.h
+3
-2
未找到文件。
drivers/usb/core/file.c
浏览文件 @
bd009496
...
...
@@ -158,14 +158,13 @@ int usb_register_dev(struct usb_interface *intf,
++
temp
;
else
temp
=
name
;
intf
->
class_dev
=
class_device_create
(
usb_class
,
NULL
,
MKDEV
(
USB_MAJOR
,
minor
),
&
intf
->
dev
,
"%s"
,
temp
);
if
(
IS_ERR
(
intf
->
class_dev
))
{
intf
->
usb_dev
=
device_create
(
usb_class
,
&
intf
->
dev
,
MKDEV
(
USB_MAJOR
,
minor
),
"%s"
,
temp
);
if
(
IS_ERR
(
intf
->
usb_dev
))
{
spin_lock
(
&
minor_lock
);
usb_minors
[
intf
->
minor
]
=
NULL
;
spin_unlock
(
&
minor_lock
);
retval
=
PTR_ERR
(
intf
->
class
_dev
);
retval
=
PTR_ERR
(
intf
->
usb
_dev
);
}
exit:
return
retval
;
...
...
@@ -206,8 +205,8 @@ void usb_deregister_dev(struct usb_interface *intf,
spin_unlock
(
&
minor_lock
);
snprintf
(
name
,
BUS_ID_SIZE
,
class_driver
->
name
,
intf
->
minor
-
minor_base
);
class_
device_destroy
(
usb_class
,
MKDEV
(
USB_MAJOR
,
intf
->
minor
));
intf
->
class
_dev
=
NULL
;
device_destroy
(
usb_class
,
MKDEV
(
USB_MAJOR
,
intf
->
minor
));
intf
->
usb
_dev
=
NULL
;
intf
->
minor
=
-
1
;
}
EXPORT_SYMBOL
(
usb_deregister_dev
);
...
...
include/linux/usb.h
浏览文件 @
bd009496
...
...
@@ -103,7 +103,8 @@ enum usb_interface_condition {
* @condition: binding state of the interface: not bound, binding
* (in probe()), bound to a driver, or unbinding (in disconnect())
* @dev: driver model's view of this device
* @class_dev: driver model's class view of this device.
* @usb_dev: if an interface is bound to the USB major, this will point
* to the sysfs representation for that device.
*
* USB device drivers attach to interfaces on a physical device. Each
* interface encapsulates a single high level function, such as feeding
...
...
@@ -143,7 +144,7 @@ struct usb_interface {
* bound to */
enum
usb_interface_condition
condition
;
/* state of binding */
struct
device
dev
;
/* interface specific device info */
struct
class_device
*
class_dev
;
struct
device
*
usb_dev
;
/* pointer to the usb class's device, if any */
};
#define to_usb_interface(d) container_of(d, struct usb_interface, dev)
#define interface_to_usbdev(intf) \
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录