linux-device-driver

Are ioctl driver functions executed from an atomic context under linux 2.6?

I am tracking down a "scheduling while atomic" error in one of our drivers, and am wondering if ioctl's are an atomic context. Also if any one has anything to share on how to get into and out of atomic contexts, and common places they occur, it would be helpful. ...

Where to use volatile?

I read about volatile keyword, but I don't know in what situations I should use it. When the memory (variable) is getting updated and process is not aware of that? In what cases should drivers use volatile variables? ...

How to compile driver to be profiled with Gprof

Simple question.. how to compile driver to be profiled with Gprof? My current Makefile: obj-m += hello-2.o all: make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules clean: make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean Works just fine ( I can load the driver etc. ), but if I try to add -pg options to t...

Linux driver - How to prevent interrupt

Hi, I am new to linux driver and writing a char driver for hardware. What is the exact way to prevent interrupt(software/hardware) jamming in while the driver functions (eg. ioctl) is executing? Thanks, Pui ...

Interrupt handling and transferring data from and to application code - low latency method theories

I have a Fibre Optic link, with a proprietary Device Driver and message format. The link goes into a PCIe card. Running on a RHEL 5.2 (2.6.18-128~) I have mmap'ed the interface on the card for setup and FIFO access etc, but cannot use this for interrupts as this should be done via the kernel-space interrupt routine (correct me if require...

Developing software for an RFID reader with open-source Linux support: Which direction to go, hardware-/system-wise?

I'll be working on a project that will work with RFID readers. The target platform for our software is Debian stable (currently 5.0.6). I have investigated the following options so far: Parallax RFID card reader (USB) • Here I'm not quite sure about the Linux support. The manual PDF from that link ("useful links") references this ven...

drop/rewrite/generate keyboard events under Linux

I would like to hook into, intercept, and generate keyboard (make/break) events under Linux before they get delivered to any application. More precisely, I want to detect patterns in the key event stream and be able to discard/insert events into the stream depending on the detected patterns. I've seen some related questions on SO, but: ...

Interested in Device Programming. Where to Start.

Hi! All I've a Good Command over C++, But I've never done anything anything on device programming. I've some basic understanding on Digital Logic Design. But I am complete Noob in Electronics. Currently I am getting huge interest on microcontroller Programming. Where To Start ? I don't think one really needs to have huge amount of know...

How many bytes does memory arbiter protect?

How many bytes does memory arbiter protect? While reading "Understanding the linux kernel, 3rd edition" chapter 2, section2.1, I encounter the following statement: In multiprocessor systems, all CPUs usually share the same memory; this means that RAM chips may be accessed concurrently by independent CPUs. Because read or write operation...

how to suspend data for multi function sd card

I have a multi function SD device which is controlled by two different driver. One driver need to suspend the other driver data transfer while sending data to underline bus driver. The suspended transfer will resume once the high priority transfer is done. SD specification supports it. Can anybody please let me know how to do that in Lin...

implement mmap with multiple pages in device driver

I have a device driver that uses buffers in RAM that I want the user to be able to map to user space. I have read http://lwn.net/images/pdf/LDD3/ch15.pdf which talks about using nopages, but the example there only uses single pages and says you can adjust usage counts to make it work for multiple pages. I don't understand how that works....

Equivalent of iostat -En in Linux

Hi, I am porting application from Solaris to linux. In Solaris iostat -En is used to give soft errors,hard errors. Please help me to find the equivalent in MontaVista Linux. Thanks in advance ...

Embedded Linux Read and Write Video from a USB port

I've got an embedded Linux project where I need to read video in through a USB port, make some modifications to that video (such as compression), and then send it back to the host via preferably the same USB port. It would also be a preferred feature if we could send commands to change things such as the video compression level from the ...

usbserial.ko for linux kernel 2.6.29.6

I need usbserial.ko for my linux 2.6.29.6. Anyone knows where to download it and how to integrate it into my current kernel? Thanks. ...

Creation of pseudo device-node under /dev

Question: How to (where to find additional information i.e., examples) programatically create a pseudo device-node under /dev from a kernel module? ...

How does one build a new X11 3D driver?

I was wondering why there is no X11 driver for the mali 3D arm gfx chip. I looked into building an X11 driver for the available kernel driver, but could not find any documentation on how to build an X11 3D driver. There exists only the minimal amount of documentation about how to build projects like DRI and Mesa, but no documentation a...

Example for kernel timer Implementation in Linux (in kernel 2.6.32)

hi, Could you please give any basic example of a kernel timer (start_ktimer) implementation in Linux? /renjith_g ...