Monthly Archives: June 2013

You are browsing the site archives by month.

I went to a Ruby on Rails workshop yesterday and today at Thoughtbot, it was awesome. We built an twitter-like application called “shout”. These are the features it had:
- User Sign In, Sign Out, Sign Up
- Streams of “shouts” on a homepage called the “dashboard”
- The ability to follow users
- We touched a little on test driven development, which is awesome!
- Spent a large portion emphasizing the importance of relationships in data
- And we were taught how to implement searches in our application.

I learned a lot. =]

The device drivers I’m going to be working on starting will be:

  • asus_oled – Its a small driver for a small display monitor. I think it would be really fun/interesting to work on. It has a TODO list I can follow along with.
  •  netlogic – its small network driver, I’ll learn more about how network drivers work by working on it, and it has a TODO list I can follow.

I’m really excited about these projects because I’ll be playing with hardware. WHOOT!!

So I made a pretty extended list of with the status and  fixes that they need. For some, I wasn’t sure how to summarize them aside from actually saying what needed to be done for each one.

 

The format is Name: Type of Fixes (Description of fixes) – Size of checkpatch.pl

 

Drivers without a TODO:

Without Maintainer:

I don’t know where these drivers are going; there aren’t any maintainers or a TODO to reference to.

csr (largest) – cxt1e1 – et131x – goldfish – line6 – octeon – phison (hasn’t been updated in over a year) – quickstart – rtl8192u –  sb105x – serqt_usb2 – slicoss – wlan-ng – zram -zsmalloc

With Maintainer:

dwc2 – usbip – vme

 

Drivers with a TODO without a maintainer:

May need more fixes than mentioned.

  • dgrp: minor fixes (use configfs for config stuff, dgrp_send() and dgrp_receive() could use some refactoring, shouldn’t automatically create CHAN_MAX (64) channel array entries for every device as many devices are going to have much less than 64 channels, the locking needs to be checked, check Kconfig dependencies) – 30.4KB

  • fwserial: major fixes (implement retries for RCODE_BUSY, RCODE_NO_ACK and RCODE_SEND_ERROR, implement _robust_ console on top of this, expose means of controlling attach/detach of peers via sysfs), minor fixes (unregistered vendor id can be a define in firewire.h)- 1.2KB

  • gdm72xx: minor fixes (replace kernel_thread with kthread in gdm_usb.c, replace hard-coded firmware paths with request_firmware in sdio_boot.c and usb_boot.c, clean up coding style to meet kernel standard)- 11.5KB

  • rts5139: major fixes (support more USB card reader of Realtek family, use kernel coding style, checkpatch.pl fixes, stop having thousands of lines of code duplicated with staging/rts_pstor, this driver contains an entire SD/MMC stack — it should use the stack in drivers/mmc instead; see drivers/mmc/host/ushc.c as an example, this driver presents cards as SCSI devices, but they should be MMC devices) – 42.1KB

  • silicom: minor fixes (checkpatch.pl cleanups, locking audit, single module with all functionality, userland, fix monolithic build) – 56.8KB

 

(Almost) Ready to be Reviewed:

  • echo: send to lkml for review – 4KB

  • frontier: Almost ready, minor fixes (sparse clean, fix userspace interface to be sane, possibly just port to userspace with libusb), review by the USB developer community – 3.5KB

  • keucr: minor fixes (smcommon.h & smilsub.c: use kernel hweight8(), hweight16(), determine if the driver should not be using a duplicate version of the usb-storage scsi interface code, but should be merged into the drivers/usb/storage/ directory and infrastructure instead) Review by the USB developer community – 197.9KB

  • ozwpan: minor fixes (convert event tracing code to in-kernel tracing infrastructure, check for remaining ioctl & check if that can be converted into sysfs entries, convert debug prints to appropriate dev_debug or something better, modify Kconfig to add CONFIG option for enabling/disabling event tracing, check USB HCD implementation is complete and correct, testing with as many devices as possible.) Code review by USB developer community. – 8KB

 

Needs to merged and deleted:

  • rtl8192e: Clean up function naming. Merge into drivers/net/wireless/rtllib/rtl8192e. – 14.8KB

 

Waiting for something:

  • cptm1217: – wait for the official upstream general clearpad drivers as promised over the past few months, merge any device support needed from this driver into it – delete this driver – 1.3KB

  • imx-drm: Many major fixes (add features, factor out code to common helper functions, and more.) Waiting for common display framework to hit mainline and update the IPU – 2.5KB

  • sbe2t3e3: Additional cleaning and tests. Wait for the new configuration interface in generic HDLC layer and when available, convert the driver to it – 27.1KB

  • ste_rmi4: Wait for the official upstream synaptics rmi4 clearpad drivers as promised over the past few months. Merge any device support needed from this driver into it. Delete this driver. (No maintainer) – 718B

 

Drivers with a TODO with a maintainer:

  • android: Needs minor fixes (ensure they build as modules, add proper arch dependencies as needed, audit userspace interfaces to make sure they are sane) – 25.3kb

  • asus_oled: Needs minor fixes (audit the userspace interface: sysfs vs. char?, needs Documentation/ABI/, add sample .txt files and README file) – 3.8kb

  • bcm: Needs major fixes (/dev/tarang API should be replaced, Qos and queue model is non-standard and inflexible, support more than one board), and minor fixes (eliminate global variables, remove developer debug BCM_DEBUG() macros, add a limited number of messages through netif_msg(), fix non-standard kernel style, use request firmware, fix use of file I/O to load config with better API, merge some files together, cleanup/eliminate debug messages) – 2.1MB

  • ced1401: Needs minor fixes (build warning fixups, ioctl auditing, usb api auditing,  proper USB minor number) – 357.4KB

  • comedi: Needs minor fixes (Lindent,  remove all wrappers,  audit userspace interface, reserve major number, cleanup the individual comedi drivers as well) – 3.6KB

  • crystalhd: Needs minor fixes (testing, cleanup return codes, cleanup typedefs, allocate an accelerator device class specific major number) – 95.9KB

  • ft1000: Needs minor fixes(sparse fixes, coding style, adapt to latest usb and pcmoa api changes, change firmware loading for usb driver to proper kernel method [request_firmware]) – 8.7KB

  • iio: Needs lots of major fixes.

  • netlogic: Needs minor fixes (implementing 64bit stat counter in software, all memory allocation should be changed to DMA allocations, all the netdev should be linked to single pdev as parent, changing comments in to linux standard format) – 30.8KB

  • nvec: major fixes (add compile as module support, move half of the nvec init stuff to i2c-tegra.c, move event handling to nvec_events, finish suspend/resume support, modifiy the sync_write method to return the received, message in a variable (and return the error code), add support for more device implementations, THIS IS AN INCOMPLETE LIST) – 2.5KB

  • olpc_dcon: Needs major fixes (see if vx855 gpio API can be made similar enough to cs5535 so we can share more code, allow simultaneous XO-1 and XO-1.5 support, console event notifier support, drop global variables, use a proper olpc_dcon_priv struct, audit code for unnecessary code; old unsupported prototype, workarounds, ancient variables (noaa?), etc, verify sane i2c API usage, update to new stuff if necessary) – 1.8KB

  • panel: Needs minor fixes (Lindent, review major/minor usages, review userspace api, see if all of this could be easier done in userspace instead) – 1.2KB

  • rtl8187se: Needs minor fixes (switch to use LIB80211, switch to use MAC8021, use kernel coding style, checkpatch.pl fixes, sparse fixes, integrate with drivers/net/wireless/rtl818x), and major fixes (prepare private ieee80211 stack for merge with rtl8192su’s version, switch to use shared “librtl” instead of private ieee80211 stack)

  • rtl8712: Needs minor fixes (merge Realtek’s bugfixes and new features into the driver, switch to use LIB80211, switch to use MAC80211, checkpatch.pl fixes – only a few remain) – 225.6KB

  • sep: Has an incomplete list of TODOs. Clean up unused ioctls. Clean up unused fields in ioctl structures – 2.6KB

  • sm7xxfb: Needs major fixes (dual head support, 2D acceleration support), and minor fixes (use kernel coding style, refine the code and remove unused code, move it to drivers/video/sm7xxfb.c) – 3.3KB

  • speakup: Lots of issues that need to be resolved by the developers. Issues explained in the TODO.- 31.3KB

  • tidspbridge: 10 minor fixes, Migrate to existing upstream code such as iommu, wdt, mcbsp, gptimers.

  • ti-soc-thermal: minor fixes (Revisit PM support, revisit need for locking, make sure this code works on OMAP4430, OMAP4460 and OMAP5430) – 1.8KB

  • vt6655: 15 minor fixes (like add common vt665x infrastructure, kill ttype.h, switch to use LIB80211, switch to use MAC80211, verify unsigned long usage for x86-64 arch, reduce .data footprint, pli) – 2.1MB

  • vt6656: 13 minor fixes (similar to vt6655) – 5.3MB

  • winbond: Suffers from severeCamelCaseInfestation. Other minor fixes (remove unused ioctls, use cfg80211 for regulatory stuff, fix 4k stack problems, fix locking problems)- 234.7KB

  • wlags49_h2: Possibly becoming obsolete. Lots of major fixes. – 2.2MB

  • wlags49_h25: Same state as wlags49_h2. – 5.4KB

  • xgifb: minor fixes(tons of clean ups, sort out dup ids with SiS driver, remove seless/wrong/unused #ifdef/code/…, fix printk usages, get rid of non-linux related stuff) – 79.3KB

  • zcache: Plans are moving along to get it out of staging. Some major fixes.  - 4KB

Figured out my goals for the program, and workflow today.

My goals for the program are:

- Learn everything I can about device drivers and the kernel
- Get some drivers out of staging
- Have my own device driver(s) built
Plan for how the program will work:
- I’ll have a project to work on (could be tackling TODO.txt, making the code fit Linux’s coding style, adding functionality my own device driver, etc)
- I’ll keep my mentor updated on my progress and reach out to if I need help with anything.
- Once I finish the project, I’ll send it.
- Fix it up til its perfect and go on to the next one.
- I’ll keep track of how many hours/week I spend on projects since OPW requires 40hrs/week. I’ll send info a weekly email with info about time spent and progress.
I’m mildly obsessed with goals and planning.