# 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_VIDEO_TM6000)	+= tm6000/
obj-$(CONFIG_VIDEO_CPIA)	+= cpia/
obj-$(CONFIG_VIDEO_STRADIS)	+= stradis/
obj-$(CONFIG_LIRC_STAGING)	+= lirc/
obj-$(CONFIG_USB_IP_COMMON)	+= usbip/
obj-$(CONFIG_W35UND)		+= winbond/
obj-$(CONFIG_PRISM2_USB)	+= wlan-ng/
obj-$(CONFIG_ECHO)		+= echo/
obj-$(CONFIG_BRCM80211)		+= brcm80211/
obj-$(CONFIG_RT2860)		+= rt2860/
obj-$(CONFIG_RT2870)		+= rt2870/
obj-$(CONFIG_COMEDI)		+= comedi/
obj-$(CONFIG_FB_OLPC_DCON)	+= olpc_dcon/
obj-$(CONFIG_ASUS_OLED)		+= asus_oled/
obj-$(CONFIG_PANEL)		+= panel/
obj-$(CONFIG_R8187SE)		+= rtl8187se/
obj-$(CONFIG_RTL8192U)		+= rtl8192u/
obj-$(CONFIG_RTL8192E)		+= rtl8192e/
obj-$(CONFIG_R8712U)		+= rtl8712/
obj-$(CONFIG_SPECTRA)		+= spectra/
obj-$(CONFIG_TRANZPORT)		+= frontier/
obj-$(CONFIG_POHMELFS)		+= pohmelfs/
obj-$(CONFIG_AUTOFS_FS)		+= autofs/
obj-$(CONFIG_IDE_PHISON)	+= phison/
obj-$(CONFIG_LINE6_USB)		+= line6/
obj-$(CONFIG_USB_SERIAL_QUATECH2)	+= serqt_usb2/
obj-$(CONFIG_SMB_FS)		+= smbfs/
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_MRST_RAR_HANDLER)	+= memrar/
obj-$(CONFIG_DX_SEP)            += sep/
obj-$(CONFIG_IIO)		+= iio/
obj-$(CONFIG_ZRAM)		+= zram/
obj-$(CONFIG_WLAGS49_H2)	+= wlags49_h2/
obj-$(CONFIG_WLAGS49_H25)	+= wlags49_h25/
obj-$(CONFIG_BATMAN_ADV)	+= batman-adv/
obj-$(CONFIG_SAMSUNG_LAPTOP)	+= samsung-laptop/
obj-$(CONFIG_FB_SM7XX)		+= sm7xx/
obj-$(CONFIG_VIDEO_DT3155)	+= dt3155v4l/
obj-$(CONFIG_CRYSTALHD)		+= crystalhd/
obj-$(CONFIG_CXT1E1)		+= cxt1e1/
obj-$(CONFIG_TI_ST)		+= ti-st/
obj-$(CONFIG_ADIS16255)		+= adis16255/
obj-$(CONFIG_FB_XGI)		+= xgifb/
obj-$(CONFIG_MSM_STAGING)	+= msm/
obj-$(CONFIG_EASYCAP)		+= easycap/
obj-$(CONFIG_SOLO6X10)		+= solo6x10/
obj-$(CONFIG_TIDSPBRIDGE)	+= tidspbridge/
obj-$(CONFIG_ACPI_QUICKSTART)	+= quickstart/
obj-$(CONFIG_WESTBRIDGE_ASTORIA)	+= westbridge/astoria/
obj-$(CONFIG_SBE_2T3E3)	+= sbe-2t3e3/
obj-$(CONFIG_ATH6K_LEGACY)	+= ath6kl/
obj-$(CONFIG_USB_ENESTORAGE)	+= keucr/
obj-$(CONFIG_BCM_WIMAX)	+= bcm/
obj-$(CONFIG_FT1000)		+= ft1000/
obj-$(CONFIG_SND_INTEL_SST)		+= intel_sst/
obj-$(CONFIG_SPEAKUP)	+= speakup/
obj-$(CONFIG_TOUCHSCREEN_CLEARPAD_TM1217)	+= cptm1217/
obj-$(CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4)	+= ste_rmi4/
