免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1639 | 回复: 2

[硬件及驱动] 有关usb_host_class的疑问。。。 [复制链接]

论坛徽章:
4
酉鸡
日期:2014-03-21 23:19:50狮子座
日期:2014-08-01 22:11:40酉鸡
日期:2015-01-10 21:31:442015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2013-02-17 22:38 |显示全部楼层
20可用积分
本帖最后由 chishanmingshen 于 2013-02-17 22:44 编辑

from 2.6.22

static struct class *usb_host_class;

int usb_host_init(void)
{
        int retval = 0;

        usb_host_class = class_create(THIS_MODULE, "usb_host");
        if (IS_ERR(usb_host_class))
                retval = PTR_ERR(usb_host_class);
        return retval;
}



static int usb_register_bus(struct usb_bus *bus)
{
        int busnum;

        mutex_lock(&usb_bus_list_lock);
        busnum = find_next_zero_bit (busmap.busmap, USB_MAXBUS, 1);
        if (busnum < USB_MAXBUS) {
                set_bit (busnum, busmap.busmap);
                bus->busnum = busnum;
        } else {
                printk (KERN_ERR "%s: too many buses\n", usbcore_name);
                mutex_unlock(&usb_bus_list_lock);
                return -E2BIG;
        }

        bus->class_dev = class_device_create(usb_host_class, NULL, MKDEV(0,0),
                                             bus->controller, "usb_host%d", busnum);
        if (IS_ERR(bus->class_dev)) {
                clear_bit(busnum, busmap.busmap);
                mutex_unlock(&usb_bus_list_lock);
                return PTR_ERR(bus->class_dev);
        }

        class_set_devdata(bus->class_dev, bus);


        /* Add it to the local list of buses */
        list_add (&bus->bus_list, &usb_bus_list);
        mutex_unlock(&usb_bus_list_lock);

        usb_notify_add_bus(bus);

        dev_info (bus->controller, "new USB bus registered, assigned bus number %d\n", bus->busnum);
        return 0;
}






from 3.7.0
/*-------------------------------------------------------------------------*/

/**
* usb_register_bus - registers the USB host controller with the usb core
* @bus: pointer to the bus to register
* Context: !in_interrupt()
*
* Assigns a bus number, and links the controller into usbcore data
* structures so that it can be seen by scanning the bus list.
*/
static int usb_register_bus(struct usb_bus *bus)
{
        int result = -E2BIG;
        int busnum;

        mutex_lock(&usb_bus_list_lock);
        busnum = find_next_zero_bit (busmap.busmap, USB_MAXBUS, 1);
        if (busnum >= USB_MAXBUS) {
                printk (KERN_ERR "%s: too many buses\n", usbcore_name);
                goto error_find_busnum;
        }
        set_bit (busnum, busmap.busmap);
        bus->busnum = busnum;

        /* Add it to the local list of buses */
        list_add (&bus->bus_list, &usb_bus_list);
        mutex_unlock(&usb_bus_list_lock);

        usb_notify_add_bus(bus);

        dev_info (bus->controller, "new USB bus registered, assigned bus "
                  "number %d\n", bus->busnum);
        return 0;

error_find_busnum:
        mutex_unlock(&usb_bus_list_lock);
        return result;
}



对比2个版本,红色部分的代码已经删除了,为何?没有了usb_host%d这个设备了么?
难道这个东西当初就不该存在?求解,谢谢!

最佳答案

查看完整内容

下面这两个commit应该能帮到你:5a3201b2809a9f7bcda8413c445483f5b5e490a3820d7a253c5e59a786d5b608f6e8d0419fdc2f6e

论坛徽章:
0
发表于 2013-02-17 22:38 |显示全部楼层
下面这两个commit应该能帮到你:
5a3201b2809a9f7bcda8413c445483f5b5e490a3
820d7a253c5e59a786d5b608f6e8d0419fdc2f6e

论坛徽章:
4
酉鸡
日期:2014-03-21 23:19:50狮子座
日期:2014-08-01 22:11:40酉鸡
日期:2015-01-10 21:31:442015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2013-02-18 10:16 |显示全部楼层
本帖最后由 chishanmingshen 于 2013-02-18 10:24 编辑

ok, thanks!

下面是patch信息:
USB: remove unused usb_host class

The usb_host class isn't used for anything anymore (it was used for
debug files, but they have moved to debugfs a few kernel releases ago),
so let's delete it before someone accidentally puts a file in it.


奇怪,难道host控制器不需要作为一个单独的device存在么? 难道这个存在没有实际的意义?至少用户在sysfs中能看到一个具体的存在啊!
照这个patch信息看,是没有什么用的,结贴!

大家有其它看法,请指点,谢谢!
回复 2# 灌水菜鸟
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP