2010-06-15 15:30:38     request_irq(IRQ_UART0_TX) fails

Document created by Aaronwu Employee on Aug 22, 2013
Version 1Show Document
  • View in full screen mode

2010-06-15 15:30:38     request_irq(IRQ_UART0_TX) fails

Steven Vacca (UNITED STATES)

Message: 90327   




I have a BF-537.


In my driver, I am able to successfully request an IRQ for UART0_RX,  request_irq(IRQ_UART0_RX),  but get failure when trying to execute a  request_irq(IRQ_UART0_TX).


I also have no problem executing a request_irq for IRQ_UART1_TX.  Could it be that since I have the console enabled, then I can't have access to the UART0 TX irq?


My call is:




Thanks for help!




2010-06-15 15:42:20     Re: request_irq(IRQ_UART0_TX) fails

Mike Frysinger (UNITED STATES)

Message: 90328   


if you enabled the Blackfin UART driver for UART0, then you cant use the same resources


also, this question has nothing to do with the toolchain ... it is a Linux question, so i'm moving it to the correct forum




2010-06-15 19:46:08     Re: request_irq(IRQ_UART0_TX) fails

Steven Vacca (UNITED STATES)

Message: 90331   


I am booting with the console enabled and the Blackfin UART driver enabled for UART0. This gives me printk() msgs out thru UART0 during bootup. But once my app starts, is there a way to disable the console and free-up UART0 so I can have full control of it and execute a request_irq() and use UART0 with my own driver?  If not, am I correct that the only alternative is to recompile with the console and Blackfin UART0 disabled, thus giving me no bootup prints?




2010-06-15 20:37:56     Re: request_irq(IRQ_UART0_TX) fails

Mike Frysinger (UNITED STATES)

Message: 90332   


dont enable UART0 if you plan on using the resources




2010-06-16 02:21:17     Re: request_irq(IRQ_UART0_TX) fails


Message: 90333   


BTW, I have similar problem.


We have a device, connected via UART. But it is not always present, more likely it is not present. And I want that device working int that rare cases, but keep using UART as system console if that device is not connected.


In version 2008R1 I did it this way:


== cut ==

static void __init my_device_init(void)


        int ret;

        platform_bus_type.suspend(&ttyBF0.dev, PMSG_SUSPEND);

        ret = my_device_detect();

        if (ret < 0) {


                printk(KERN_INFO "my_device: not found\n");

        } else {


                printk(KERN_INFO "my_device: driver loaded\n");



== cut ==


- and all was OK.


But in newer releases -- 2009R1 and trunk -- this code don't works, and hangs system, so I removed it, and that device is now unsupported.


Can anyone explain what is changed since 2008 release, and what I can do for supporting that device?




2010-06-16 10:44:33     Re: request_irq(IRQ_UART0_TX) fails


Message: 90338   




Why not just compile both as a module? in /etc/rc install yours - if it fails - it shouldn't claim any resources. When the Blackfin UART driver trys to claim things - if yours is installed - it will fail, otherwise it should work. Everything stays standard - and shouldn't cause any issues.