# Makefile for staging directory

# fix for build system bug...
obj-$(CONFIG_STAGING)		+= staging.o

obj-$(CONFIG_ET131X)		+= et131x/
obj-$(CONFIG_SLICOSS)		+= slicoss/
obj-$(CONFIG_VIDEO_GO7007)	+= go7007/
obj-$(CONFIG_VIDEO_CX25821)	+= cx25821/
obj-$(CONFIG_USB_IP_COMMON)	+= usbip/
obj-$(CONFIG_W35UND)		+= winbond/
obj-$(CONFIG_PRISM2_USB)	+= wlan-ng/
obj-$(CONFIG_ECHO)		+= echo/
obj-$(CONFIG_POCH)		+= poch/
obj-$(CONFIG_OTUS)		+= otus/
obj-$(CONFIG_RT2860)		+= rt2860/
obj-$(CONFIG_RT2870)		+= rt2870/
obj-$(CONFIG_RT3090)		+= rt3090/
obj-$(CONFIG_COMEDI)		+= comedi/
obj-$(CONFIG_ASUS_OLED)		+= asus_oled/
obj-$(CONFIG_PANEL)		+= panel/
obj-$(CONFIG_ALTERA_PCIE_CHDMA)	+= altpciechdma/
obj-$(CONFIG_RTL8187SE)		+= rtl8187se/
obj-$(CONFIG_RTL8192SU)		+= rtl8192su/
obj-$(CONFIG_RTL8192E)		+= rtl8192e/
obj-$(CONFIG_TRANZPORT)		+= frontier/
obj-$(CONFIG_ANDROID)		+= android/
obj-$(CONFIG_ANDROID)		+= dream/
obj-$(CONFIG_DST)		+= dst/
obj-$(CONFIG_POHMELFS)		+= pohmelfs/
obj-$(CONFIG_B3DFG)		+= b3dfg/
obj-$(CONFIG_IDE_PHISON)	+= phison/
obj-$(CONFIG_PLAN9AUTH)		+= p9auth/
obj-$(CONFIG_LINE6_USB)		+= line6/
obj-$(CONFIG_USB_SERIAL_QUATECH2)	+= serqt_usb2/
obj-$(CONFIG_USB_SERIAL_QUATECH_USB2)	+= quatech_usb2/
obj-$(CONFIG_OCTEON_ETHERNET)	+= octeon/
obj-$(CONFIG_VT6655)		+= vt6655/
obj-$(CONFIG_VT6656)		+= vt6656/
obj-$(CONFIG_FB_UDL)		+= udlfb/
obj-$(CONFIG_HYPERV)		+= hv/
obj-$(CONFIG_VME_BUS)		+= vme/
obj-$(CONFIG_RAR_REGISTER)	+= rar/
obj-$(CONFIG_DX_SEP)		+= sep/
obj-$(CONFIG_IIO)		+= iio/
