select ARCH_REQUIRE_GPIOLIB
select ARCH_HAS_CPUFREQ
select GENERIC_CLOCKEVENTS
+ select HAVE_SCHED_CLOCK
select ARCH_HAS_HOLES_MEMORYMODEL
help
- Support for TI's OMAP platform (OMAP1 and OMAP2).
+ Support for TI's OMAP platform (OMAP1/2/3/4).
+config ARCH_RK29
+ bool "Rockchip Soc Rk29"
+ select CPU_V7
+ select HAVE_CLK
+ select COMMON_CLKDEV
+ select HAVE_SCHED_CLOCK
+ select ARCH_HAS_CPUFREQ
+ select GENERIC_TIME
+ select GENERIC_CLOCKEVENTS
+ select ARCH_REQUIRE_GPIOLIB
+ select ARM_GIC
+ select PL330
+ select HIGHMEM
+ select ZONE_DMA
+ select ARM_L1_CACHE_SHIFT_6
+ help
+ Support for Rockchip RK29 soc.
+
config PLAT_SPEAR
bool "ST SPEAr"
select ARM_AMBA
$(obj)/uImage: LOADADDR=$(ZRELADDR)
endif
- ifeq ($(CONFIG_THUMB2_KERNEL),y)
- # Set bit 0 to 1 so that "mov pc, rx" switches to Thumb-2 mode
- $(obj)/uImage: STARTADDR=$(shell echo $(LOADADDR) | sed -e "s/.$$/1/")
- else
$(obj)/uImage: STARTADDR=$(LOADADDR)
- endif
-$(obj)/uImage: $(obj)/zImage FORCE
+$(obj)/Image.gz: $(obj)/Image FORCE
+ $(call if_changed,gzip)
+ @echo ' Image: $@ is ready'
+
+$(obj)/uImage: $(obj)/Image FORCE
$(call if_changed,uimage)
- @echo ' Image $@ is ready'
+ @echo ' Image: $@ is ready'
$(obj)/bootp/bootp: $(obj)/zImage initrd FORCE
$(Q)$(MAKE) $(build)=$(obj)/bootp $@
#define PART 0x330
#define DESIGNER 0x41
-#define REVISION 0x0
+#define REVISION 0x1
#define INTEG_CFG 0x0
- #define PERIPH_ID_VAL ((PART << 0) | (DESIGNER << 12) \
- | (REVISION << 20) | (INTEG_CFG << 24))
+ #define PERIPH_ID_VAL ((PART << 0) | (DESIGNER << 12))
#define PCELL_ID_VAL 0xb105f00d
/*
* This is the maximum virtual address which can be DMA'd from.
*/
- #ifndef MAX_DMA_ADDRESS
+ #ifndef ARM_DMA_ZONE_SIZE
#define MAX_DMA_ADDRESS 0xffffffff
+ #else
+ #define MAX_DMA_ADDRESS (PAGE_OFFSET + ARM_DMA_ZONE_SIZE)
#endif
-
-#ifdef CONFIG_ISA_DMA_API
/*
* This is used to support drivers written for the x86 ISA DMA API.
* It should not be re-used except for that purpose.
__tcm_end = .;
}
#endif
+#ifdef CONFIG_ARCH_RK29
+ /*
+ * We align everything to a page boundary so we can
+ * free it after init has commenced and SRAM contents have
+ * been copied to its destination.
+ */
+ .sram_start : {
+ . = ALIGN(PAGE_SIZE);
+ __sram_start = .;
+ __sram_code_start = .;
+ }
+
+ /*
+ * Link these to the ITCM RAM
+ * Put VMA to the TCM address and LMA to the common RAM
+ * and we'll upload the contents from RAM to TCM and free
+ * the used RAM after that.
+ */
+ .text_sram_code SRAM_CODE_OFFSET : AT(__sram_code_start)
+ {
+ __ssram_code_text = .;
+ *(.sram.text)
+ *(.sram.rodata)
+ . = ALIGN(4);
+ __esram_code_text = .;
+ }
+
+ /*
+ * Reset the dot pointer, this is needed to create the
+ * relative __dtcm_start below (to be used as extern in code).
+ */
+ . = ADDR(.sram_start) + SIZEOF(.sram_start) + SIZEOF(.text_sram_code);
+
+ .sram_data_start : {
+ __sram_data_start = .;
+ }
+
+ /* TODO: add remainder of ITCM as well, that can be used for data! */
+ .data_sram SRAM_DATA_OFFSET : AT(__sram_data_start)
+ {
+ . = ALIGN(4);
+ __ssram_data = .;
+ *(.sram.data)
+ . = ALIGN(4);
+ __esram_data = .;
+ }
+
+ /* Reset the dot pointer or the linker gets confused */
+ . = ADDR(.sram_data_start) + SIZEOF(.data_sram);
+
+ /* End marker for freeing TCM copy in linked object */
+ .sram_end : AT(ADDR(.sram_data_start) + SIZEOF(.data_sram)){
+ . = ALIGN(PAGE_SIZE);
+ __sram_end = .;
+ }
+#endif
+ NOTES
+
BSS_SECTION(0, 0, 0)
_end = .;
#include <linux/string.h>
#include "base.h"
#include "power/power.h"
+#include "linux/usb.h"
+#include "devices_filter.h"
#define to_bus_attr(_attr) container_of(_attr, struct bus_attribute, attr)
- #define to_bus(obj) container_of(obj, struct bus_type_private, subsys.kobj)
/*
* sysfs bindings for drivers
obj-$(CONFIG_GPIO_MAX732X) += max732x.o
obj-$(CONFIG_GPIO_MC33880) += mc33880.o
obj-$(CONFIG_GPIO_MCP23S08) += mcp23s08.o
+ obj-$(CONFIG_GPIO_74X164) += 74x164.o
+ obj-$(CONFIG_ARCH_OMAP) += gpio-omap.o
obj-$(CONFIG_GPIO_PCA953X) += pca953x.o
obj-$(CONFIG_GPIO_PCF857X) += pcf857x.o
+ obj-$(CONFIG_GPIO_PCH) += pch_gpio.o
obj-$(CONFIG_GPIO_PL061) += pl061.o
obj-$(CONFIG_GPIO_STMPE) += stmpe-gpio.o
- obj-$(CONFIG_GPIO_TC35892) += tc35892-gpio.o
+ obj-$(CONFIG_GPIO_TC3589X) += tc3589x-gpio.o
obj-$(CONFIG_GPIO_TIMBERDALE) += timbgpio.o
obj-$(CONFIG_GPIO_TWL4030) += twl4030-gpio.o
+obj-$(CONFIG_GPIO_TPS65910) += tps65910-gpio.o
obj-$(CONFIG_GPIO_UCB1400) += ucb1400_gpio.o
obj-$(CONFIG_GPIO_XILINX) += xilinx_gpio.o
obj-$(CONFIG_GPIO_CS5535) += cs5535-gpio.o
client->dev.parent = &client->adapter->dev;
client->dev.bus = &i2c_bus_type;
client->dev.type = &i2c_client_type;
- #ifdef CONFIG_OF
client->dev.of_node = info->of_node;
- #endif
- dev_set_name(&client->dev, "%d-%04x", i2c_adapter_id(adap),
- client->addr);
+ /* ddl@rock-chips.com : Devices which have some i2c addr can work in same i2c bus,
+ if devices havn't work at the same time.*/
+ #if 0
+ dev_set_name(&client->dev, "%d-%04x", i2c_adapter_id(adap),
+ client->addr);
+ #else
+ if (status == 0)
+ dev_set_name(&client->dev, "%d-%04x", i2c_adapter_id(adap),
+ client->addr);
+ else
+ dev_set_name(&client->dev, "%d-%04x-%01x", i2c_adapter_id(adap),
+ client->addr,status);
+ #endif
+
status = device_register(&client->dev);
if (status)
goto out_err;
# Each configuration option enables a list of files.
+obj-$(CONFIG_INPUT_LPSENSOR_CM3602) += capella_cm3602.o
+obj-$(CONFIG_INPUT_LPSENSOR_ISL29028) += isl29028.o
obj-$(CONFIG_INPUT_88PM860X_ONKEY) += 88pm860x_onkey.o
+ obj-$(CONFIG_INPUT_AB8500_PONKEY) += ab8500-ponkey.o
obj-$(CONFIG_INPUT_AD714X) += ad714x.o
obj-$(CONFIG_INPUT_AD714X_I2C) += ad714x-i2c.o
obj-$(CONFIG_INPUT_AD714X_SPI) += ad714x-spi.o
obj-$(CONFIG_INPUT_TWL4030_PWRBUTTON) += twl4030-pwrbutton.o
obj-$(CONFIG_INPUT_TWL4030_VIBRA) += twl4030-vibra.o
obj-$(CONFIG_INPUT_UINPUT) += uinput.o
- obj-$(CONFIG_INPUT_WINBOND_CIR) += winbond-cir.o
obj-$(CONFIG_INPUT_WISTRON_BTNS) += wistron_btns.o
obj-$(CONFIG_INPUT_WM831X_ON) += wm831x-on.o
+ obj-$(CONFIG_INPUT_XEN_KBDDEV_FRONTEND) += xen-kbdfront.o
obj-$(CONFIG_INPUT_YEALINK) += yealink.o
-
of_platform devices. For instance, LEDs which are listed in a "dts"
file.
+config LEDS_NEWTON_PWM
+ bool "LED Support for newton pwm"
+ depends on LEDS_CLASS&&ARCH_RK29
+ default n
+ help
+ Let the leds-gpio driver drive LEDs which have been defined as
+ platform devices. If you don't know what this means, say yes.
+
config LEDS_LP3944
tristate "LED Support for N.S. LP3944 (Fun Light) I2C chip"
+ depends on LEDS_CLASS
depends on I2C
help
This option enables support for LEDs connected to the National
This option enables support for BD2802GU RGB LED driver chips
accessed via the I2C bus.
+config LEDS_ATT1272
+ tristate "LED driver for ATT1272 LED"
+ depends on LEDS_CLASS && I2C
+ help
+ This option enables support for ATT1272 LED driver chips
+ accessed via the I2C bus.
+
config LEDS_INTEL_SS4200
tristate "LED driver for Intel NAS SS4200 series"
+ depends on LEDS_CLASS
depends on PCI && DMI
help
This option enables support for the Intel SS4200 series of
---help---
This is a v4l2 driver for the TI OMAP2 camera capture interface
+config VIDEO_RK29
+ tristate "RK29XX Camera Sensor Interface driver"
+ depends on VIDEO_DEV && ARCH_RK29 && SOC_CAMERA && HAS_DMA
+ select VIDEOBUF_DMA_CONTIG
+ ---help---
+ This is a v4l2 driver for the RK29XX Camera Sensor Interface
+
+choice
+ prompt "RK29XX Camera Sensor Interface Work Mode"
+ depends on VIDEO_RK29
+ default VIDEO_RK29_WORK_ONEFRAME
+ ---help---
+ RK29 Camera Sensor Interface(VIP) can work in 2 modes, ie:OneFrame,PingPong.
+
+config VIDEO_RK29_WORK_ONEFRAME
+ bool "VIP OneFrame Mode"
+
+config VIDEO_RK29_WORK_PINGPONG
+ bool "VIP PingPong Mode"
+
+endchoice
+
+choice
+ prompt "RK29XX camera sensor interface work with IPP "
+ depends on VIDEO_RK29 && RK29_IPP
+ default VIDEO_RK29_WORK_IPP
+ ---help---
+ RK29 Camera Sensor Interface(VIP) can work with IPP or not IPP
+
+config VIDEO_RK29_WORK_IPP
+ bool "VIP work with IPP"
+
+config VIDEO_RK29_WORK_NOT_IPP
+ bool "VIP don't work with IPP"
+
+endchoice
+
config VIDEO_MX2_HOSTSUPPORT
- bool
+ bool
config VIDEO_MX2
tristate "i.MX27/i.MX25 Camera Sensor Interface driver"
dma_addr_t urb_dma[UVC_URBS];
unsigned int urb_size;
+ __u32 sequence;
__u8 last_fid;
+
+ struct tasklet_struct *tasklet[UVC_URBS]; /* ddl@rock-chips.com */
};
enum uvc_device_state {
if (irqflags == IRQF_TRIGGER_NONE)
dev_warn(db->dev, "WARNING: no IRQ resource flags set.\n");
- irqflags |= IRQF_SHARED;
+ //irqflags |= IRQF_SHARED;
- if (request_irq(dev->irq, dm9000_interrupt, irqflags, dev->name, dev))
- return -EAGAIN;
+ /* GPIO0 on pre-activate PHY, Reg 1F is not set by reset */
+ iow(db, DM9000_GPR, 0); /* REG_1F bit0 activate phyxcer */
+ mdelay(1); /* delay needs by DM9000B */
/* Initialize DM9000 board */
dm9000_reset(db);
obj-$(CONFIG_BATTERY_Z2) += z2_battery.o
obj-$(CONFIG_BATTERY_S3C_ADC) += s3c_adc_battery.o
obj-$(CONFIG_CHARGER_PCF50633) += pcf50633-charger.o
+obj-$(CONFIG_BATTERY_STC3100) += stc3100_battery.o
+obj-$(CONFIG_BATTERY_BQ27510) += bq27510_battery.o
+obj-$(CONFIG_BATTERY_BQ27541) += bq27541_battery.o
+obj-$(CONFIG_BATTERY_BQ3060) += bq3060_battery.o
obj-$(CONFIG_BATTERY_JZ4740) += jz4740-battery.o
obj-$(CONFIG_BATTERY_INTEL_MID) += intel_mid_battery.o
+ obj-$(CONFIG_CHARGER_ISP1704) += isp1704_charger.o
+ obj-$(CONFIG_CHARGER_MAX8903) += max8903_charger.o
+ obj-$(CONFIG_CHARGER_TWL4030) += twl4030_charger.o
+ obj-$(CONFIG_CHARGER_GPIO) += gpio-charger.o
.enable = wm8994_ldo_enable,
.disable = wm8994_ldo_disable,
.is_enabled = wm8994_ldo_is_enabled,
- .enable_time = wm8994_ldo_enable_time,
+// .enable_time = wm8994_ldo_enable_time,
.list_voltage = wm8994_ldo1_list_voltage,
- .get_voltage = wm8994_ldo1_get_voltage,
+ .get_voltage_sel = wm8994_ldo1_get_voltage_sel,
.set_voltage = wm8994_ldo1_set_voltage,
};
.enable = wm8994_ldo_enable,
.disable = wm8994_ldo_disable,
.is_enabled = wm8994_ldo_is_enabled,
- .enable_time = wm8994_ldo_enable_time,
+// .enable_time = wm8994_ldo_enable_time,
.list_voltage = wm8994_ldo2_list_voltage,
- .get_voltage = wm8994_ldo2_get_voltage,
+ .get_voltage_sel = wm8994_ldo2_get_voltage_sel,
.set_voltage = wm8994_ldo2_set_voltage,
};
dev_dbg(&rhdev->dev, "bus %s%s\n",
(msg.event & PM_EVENT_AUTO ? "auto-" : ""), "suspend");
+ if (HCD_DEAD(hcd)) {
+ dev_dbg(&rhdev->dev, "skipped %s of dead bus\n", "suspend");
+ return 0;
+ }
+
if (!hcd->driver->bus_suspend) {
+ printk("%s,error,everest\n",__func__);
status = -ENOENT;
} else {
+ clear_bit(HCD_FLAG_RH_RUNNING, &hcd->flags);
hcd->state = HC_STATE_QUIESCING;
status = hcd->driver->bus_suspend(hcd);
}
return 0x24;
else if (gadget_is_r8a66597(gadget))
return 0x25;
+ else if (gadget_is_dwc_otg(gadget))
+ return 0x22;
else if (gadget_is_s3c_hsotg(gadget))
return 0x26;
+ else if (gadget_is_pch(gadget))
+ return 0x27;
+ else if (gadget_is_ci13xxx_msm(gadget))
+ return 0x28;
+ else if (gadget_is_renesas_usbhs(gadget))
+ return 0x29;
+ else if (gadget_is_s3c_hsudc(gadget))
+ return 0x30;
+
return -ENOENT;
}
obj-$(CONFIG_FB_PNX4008_DUM_RGB) += pnx4008/
obj-$(CONFIG_FB_IBM_GXT4500) += gxt4500.o
obj-$(CONFIG_FB_PS3) += ps3fb.o
+obj-$(CONFIG_FB_RK29) += rk29_fb.o
obj-$(CONFIG_FB_SM501) += sm501fb.o
+ obj-$(CONFIG_FB_UDL) += udlfb.o
obj-$(CONFIG_FB_XILINX) += xilinxfb.o
obj-$(CONFIG_SH_MIPI_DSI) += sh_mipi_dsi.o
obj-$(CONFIG_FB_SH_MOBILE_HDMI) += sh_mobile_hdmi.o
obj-$(CONFIG_BACKLIGHT_WM831X) += wm831x_bl.o
obj-$(CONFIG_BACKLIGHT_ADX) += adx_bl.o
obj-$(CONFIG_BACKLIGHT_ADP5520) += adp5520_bl.o
+obj-$(CONFIG_BACKLIGHT_RK29_BL) += rk29_backlight.o
+obj-$(CONFIG_BACKLIGHT_RK29_NEWTON_BL) += rk29_newton_backlight.o
+obj-$(CONFIG_BACKLIGHT_AW9364) += aw9364_bl.o
+obj-$(CONFIG_FIH_TOUCHKEY_LED) += fih_touchkey_led.o
+obj-$(CONFIG_BUTTON_LIGHT) += rk29_buttonlight.o
obj-$(CONFIG_BACKLIGHT_ADP8860) += adp8860_bl.o
+ obj-$(CONFIG_BACKLIGHT_ADP8870) += adp8870_bl.o
obj-$(CONFIG_BACKLIGHT_88PM860X) += 88pm860x_bl.o
obj-$(CONFIG_BACKLIGHT_PCF50633) += pcf50633-backlight.o
* __GFP_MOVABLE: Flag that this page will be movable by the page migration
* mechanism or reclaimed
*/
- #define __GFP_WAIT ((__force gfp_t)0x10u) /* Can wait and reschedule? */
- #define __GFP_HIGH ((__force gfp_t)0x20u) /* Should access emergency pools? */
- #define __GFP_IO ((__force gfp_t)0x40u) /* Can start physical IO? */
- #define __GFP_FS ((__force gfp_t)0x80u) /* Can call down to low-level FS? */
- #define __GFP_COLD ((__force gfp_t)0x100u) /* Cache-cold page required */
- #define __GFP_NOWARN ((__force gfp_t)0x200u) /* Suppress page allocation failure warning */
- #define __GFP_REPEAT ((__force gfp_t)0x400u) /* See above */
- #define __GFP_NOFAIL ((__force gfp_t)0x800u) /* See above */
- #define __GFP_NORETRY ((__force gfp_t)0x1000u)/* See above */
- #define __GFP_COMP ((__force gfp_t)0x4000u)/* Add compound page metadata */
- #define __GFP_ZERO ((__force gfp_t)0x8000u)/* Return zeroed page on success */
- #define __GFP_NOMEMALLOC ((__force gfp_t)0x10000u) /* Don't use emergency reserves */
- #define __GFP_HARDWALL ((__force gfp_t)0x20000u) /* Enforce hardwall cpuset memory allocs */
- #define __GFP_THISNODE ((__force gfp_t)0x40000u)/* No fallback, no policies */
- #define __GFP_RECLAIMABLE ((__force gfp_t)0x80000u) /* Page is reclaimable */
-
- #ifdef CONFIG_KMEMCHECK
- #define __GFP_NOTRACK ((__force gfp_t)0x200000u) /* Don't track with kmemcheck */
- #else
- #define __GFP_NOTRACK ((__force gfp_t)0)
- #endif
+ #define __GFP_WAIT ((__force gfp_t)___GFP_WAIT) /* Can wait and reschedule? */
+ #define __GFP_HIGH ((__force gfp_t)___GFP_HIGH) /* Should access emergency pools? */
+ #define __GFP_IO ((__force gfp_t)___GFP_IO) /* Can start physical IO? */
+ #define __GFP_FS ((__force gfp_t)___GFP_FS) /* Can call down to low-level FS? */
+ #define __GFP_COLD ((__force gfp_t)___GFP_COLD) /* Cache-cold page required */
+ #define __GFP_NOWARN ((__force gfp_t)___GFP_NOWARN) /* Suppress page allocation failure warning */
+ #define __GFP_REPEAT ((__force gfp_t)___GFP_REPEAT) /* See above */
+ #define __GFP_NOFAIL ((__force gfp_t)___GFP_NOFAIL) /* See above */
+ #define __GFP_NORETRY ((__force gfp_t)___GFP_NORETRY) /* See above */
+ #define __GFP_COMP ((__force gfp_t)___GFP_COMP) /* Add compound page metadata */
+ #define __GFP_ZERO ((__force gfp_t)___GFP_ZERO) /* Return zeroed page on success */
+ #define __GFP_NOMEMALLOC ((__force gfp_t)___GFP_NOMEMALLOC) /* Don't use emergency reserves */
+ #define __GFP_HARDWALL ((__force gfp_t)___GFP_HARDWALL) /* Enforce hardwall cpuset memory allocs */
+ #define __GFP_THISNODE ((__force gfp_t)___GFP_THISNODE)/* No fallback, no policies */
+ #define __GFP_RECLAIMABLE ((__force gfp_t)___GFP_RECLAIMABLE) /* Page is reclaimable */
+ #define __GFP_NOTRACK ((__force gfp_t)___GFP_NOTRACK) /* Don't track with kmemcheck */
+
+ #define __GFP_NO_KSWAPD ((__force gfp_t)___GFP_NO_KSWAPD)
+ #define __GFP_OTHER_NODE ((__force gfp_t)___GFP_OTHER_NODE) /* On behalf of other node */
+#define __GFP_NO_KSWAPD ((__force gfp_t)0x400000u)
+
/*
* This may seem redundant, but it's a way of annotating false positives vs.
* allocations that simply cannot be supported (e.g. page tables).
#define mmc_card_readonly(c) ((c)->state & MMC_STATE_READONLY)
#define mmc_card_highspeed(c) ((c)->state & MMC_STATE_HIGHSPEED)
#define mmc_card_blockaddr(c) ((c)->state & MMC_STATE_BLOCKADDR)
+ #define mmc_card_ddr_mode(c) ((c)->state & MMC_STATE_HIGHSPEED_DDR)
+ #define mmc_sd_card_uhs(c) ((c)->state & MMC_STATE_ULTRAHIGHSPEED)
+ #define mmc_card_ext_capacity(c) ((c)->state & MMC_CARD_SDXC)
#define mmc_card_set_present(c) ((c)->state |= MMC_STATE_PRESENT)
+#define mmc_card_clr_present(c) ((c)->state &= ~MMC_STATE_PRESENT)
+
#define mmc_card_set_readonly(c) ((c)->state |= MMC_STATE_READONLY)
#define mmc_card_set_highspeed(c) ((c)->state |= MMC_STATE_HIGHSPEED)
#define mmc_card_set_blockaddr(c) ((c)->state |= MMC_STATE_BLOCKADDR)
/* Access functions */
int (*readsect)(struct mtd_blktrans_dev *dev,
- unsigned long block, char *buffer);
+ unsigned long block,unsigned long nsect, char *buffer);
int (*writesect)(struct mtd_blktrans_dev *dev,
- unsigned long block, char *buffer);
+ unsigned long block,unsigned long nsect, char *buffer);
int (*discard)(struct mtd_blktrans_dev *dev,
unsigned long block, unsigned nr_blocks);
+ void (*background)(struct mtd_blktrans_dev *dev);
/* Block layer ioctls */
int (*getgeo)(struct mtd_blktrans_dev *dev, struct hd_geometry *geo);
int (*hw_free)(struct snd_pcm_substream *);
int (*prepare)(struct snd_pcm_substream *);
int (*trigger)(struct snd_pcm_substream *, int);
+ /* set volume,add by qiuen*/
+ void (*set_volume)(unsigned char mode,unsigned char volume);
};
- /* SoC Audio Codec */
+ /* SoC cache ops */
+ struct snd_soc_cache_ops {
+ const char *name;
+ enum snd_soc_compress_type id;
+ int (*init)(struct snd_soc_codec *codec);
+ int (*exit)(struct snd_soc_codec *codec);
+ int (*read)(struct snd_soc_codec *codec, unsigned int reg,
+ unsigned int *value);
+ int (*write)(struct snd_soc_codec *codec, unsigned int reg,
+ unsigned int value);
+ int (*sync)(struct snd_soc_codec *codec);
+ };
+
+ /* SoC Audio Codec device */
struct snd_soc_codec {
- char *name;
- struct module *owner;
- struct mutex mutex;
+ const char *name;
+ const char *name_prefix;
+ int id;
struct device *dev;
- struct snd_soc_device *socdev;
+ const struct snd_soc_codec_driver *driver;
+ struct mutex mutex;
+ struct snd_soc_card *card;
struct list_head list;
-
- /* callbacks */
- int (*set_bias_level)(struct snd_soc_codec *,
- enum snd_soc_bias_level level);
+ struct list_head card_list;
+ int num_dai;
+ enum snd_soc_compress_type compress_type;
+ size_t reg_size; /* reg_cache_size * reg_word_size */
+ int (*volatile_register)(struct snd_soc_codec *, unsigned int);
+ int (*readable_register)(struct snd_soc_codec *, unsigned int);
+ int (*writable_register)(struct snd_soc_codec *, unsigned int);
/* runtime */
- struct snd_card *card;
struct snd_ac97 *ac97; /* for ad-hoc ac97 devices */
unsigned int active;
- unsigned int pcm_devs;
- void *drvdata;
+ unsigned int cache_bypass:1; /* Suppress access to the cache */
+ unsigned int suspended:1; /* Codec is in suspend PM state */
+ unsigned int probed:1; /* Codec has been probed */
+ unsigned int ac97_registered:1; /* Codec has been AC97 registered */
+ unsigned int ac97_created:1; /* Codec has been created by SoC */
+ unsigned int sysfs_registered:1; /* codec has been sysfs registered */
+ unsigned int cache_init:1; /* codec cache has been initialized */
+ u32 cache_only; /* Suppress writes to hardware */
+ u32 cache_sync; /* Cache needs to be synced to hardware */
/* codec IO */
void *control_data; /* codec control (i2c/3wire) data */
choice
prompt "Kernel compression mode"
+ default KERNEL_LZO if ARCH_RK29
default KERNEL_GZIP
- depends on HAVE_KERNEL_GZIP || HAVE_KERNEL_BZIP2 || HAVE_KERNEL_LZMA || HAVE_KERNEL_LZO
+ depends on HAVE_KERNEL_GZIP || HAVE_KERNEL_BZIP2 || HAVE_KERNEL_LZMA || HAVE_KERNEL_XZ || HAVE_KERNEL_LZO
help
The linux kernel is a kind of self-extracting executable.
Several compression algorithms are available, which differ
source "sound/soc/nuc900/Kconfig"
source "sound/soc/omap/Kconfig"
source "sound/soc/kirkwood/Kconfig"
+ source "sound/soc/mid-x86/Kconfig"
source "sound/soc/pxa/Kconfig"
- source "sound/soc/s3c24xx/Kconfig"
+ source "sound/soc/samsung/Kconfig"
source "sound/soc/s6000/Kconfig"
source "sound/soc/sh/Kconfig"
+ source "sound/soc/tegra/Kconfig"
source "sound/soc/txx9/Kconfig"
-
+source "sound/soc/rk29/Kconfig"
# Supported codecs
source "sound/soc/codecs/Kconfig"
obj-$(CONFIG_SND_SOC) += omap/
obj-$(CONFIG_SND_SOC) += kirkwood/
obj-$(CONFIG_SND_SOC) += pxa/
- obj-$(CONFIG_SND_SOC) += s3c24xx/
+ obj-$(CONFIG_SND_SOC) += samsung/
obj-$(CONFIG_SND_SOC) += s6000/
obj-$(CONFIG_SND_SOC) += sh/
+ obj-$(CONFIG_SND_SOC) += tegra/
obj-$(CONFIG_SND_SOC) += txx9/
+obj-$(CONFIG_SND_SOC) += rk29/