博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
慢慢欣赏linux 继续深入学习x86中断3 pch中断
阅读量:4070 次
发布时间:2019-05-25

本文共 1520 字,大约阅读时间需要 5 分钟。

int pch_gpio_probe(struct pci_dev *pdev,				    const struct pci_device_id *id){	struct pch_gpio *chip = kzalloc(sizeof(*chip), GFP_KERNEL);	int irq_base;		chip->dev = &pdev->dev;	ret = pci_enable_device(pdev);		ret = pci_request_regions(pdev, KBUILD_MODNAME);		chip->base = pci_iomap(pdev, 1, 0);		chip->reg = chip->base;	pci_set_drvdata(pdev, chip);		pch_gpio_setup(chip);	ret = gpiochip_add_data(&chip->gpio, chip);		irq_base = devm_irq_alloc_descs(&pdev->dev, -1, 0,					gpio_pins[chip->ioh], NUMA_NO_NODE);	// 有可能静态分配irq_desc 或者动态 kmalloc 申请		chip->irq_base = irq_base;	/* Mask all interrupts, but enable them */	msk = (1 << gpio_pins[chip->ioh]) - 1;	iowrite32(msk, &chip->reg->imask);	iowrite32(msk, &chip->reg->ien);		ret = devm_request_irq(&pdev->dev, pdev->irq, pch_gpio_handler,			       IRQF_SHARED, KBUILD_MODNAME, chip);				   	ret = pch_gpio_alloc_generic_chip(chip, irq_base,					  gpio_pins[chip->ioh]);	=>int pch_gpio_alloc_generic_chip(struct pch_gpio *chip,				       unsigned int irq_start,				       unsigned int num)	{		struct irq_chip_generic *gc = devm_irq_alloc_generic_chip(chip->dev, "pch_gpio", 1, irq_start,					 chip->base, handle_simple_irq);		struct irq_chip_type *ct = gc->chip_types;		gc->private = chip;		ct->chip.irq_ack = pch_irq_ack;		ct->chip.irq_mask = pch_irq_mask;		ct->chip.irq_unmask = pch_irq_unmask;		ct->chip.irq_set_type = pch_irq_type;		rv = devm_irq_setup_generic_chip(chip->dev, gc, IRQ_MSK(num),						 IRQ_GC_INIT_MASK_CACHE,						 IRQ_NOREQUEST | IRQ_NOPROBE, 0);	}}

 

转载地址:http://idlji.baihongyu.com/

你可能感兴趣的文章
Selenium-Css Selector使用方法
查看>>
Linux常用统计命令之wc
查看>>
Java.nio
查看>>
PHP那点小事--三元运算符
查看>>
fastcgi_param 详解
查看>>
Linux中的进程
查看>>
学习python(1)——环境与常识
查看>>
学习设计模式(3)——单例模式和类的成员函数中的静态变量的作用域
查看>>
一文看清HBase的使用场景
查看>>
解析zookeeper的工作流程
查看>>
搞定Java面试中的数据结构问题
查看>>
慢慢欣赏linux make uImage流程
查看>>
linux内核学习(7)脱胎换骨解压缩的内核
查看>>
以太网基础知识
查看>>
慢慢欣赏linux 内核模块引用
查看>>
kprobe学习
查看>>
慢慢欣赏linux CPU占用率学习
查看>>
Homebrew指令集
查看>>
React Native(一):搭建开发环境、出Hello World
查看>>
React Native(二):属性、状态
查看>>