From 0b7029012964c88f3e9f83fa262ec7e335cfdd2e Mon Sep 17 00:00:00 2001 From: Markham Date: Thu, 22 Mar 2018 11:59:39 +0100 Subject: [PATCH] add targets to build ARM kernel and hd51 image hd51 IS NOT BOOTING YET --- Makefile | 26 +- .../hd51_0001-STV-Add-PLS-support.patch | 94 + ...STV-Add-SNR-Signal-report-parameters.patch | 92 + ...pport-TBS-USB-drivers-for-4.6-kernel.patch | 1334 +++++ .../hd51_0001-TBS-fixes-for-4.6-kernel.patch | 55 + ...01-stv090x-optimized-TS-sync-control.patch | 92 + .../hd51_TBS-fixes-for-4.10-kernel.patch | 46 + .../armbox/hd51_blacklist_mmc0.patch | 15 + archive-patches/armbox/hd51_blindscan2.patch | 261 + archive-patches/armbox/hd51_defconfig | 4423 +++++++++++++++++ .../hd51_export_pmpoweroffprepare.patch | 12 + .../armbox/hd51_reserve_dvb_adapter_0.patch | 13 + archive-patches/host-mtd-utils-1.5.2.patch | 16 + archive-patches/module-init-tools-3.16.patch | 29 + make/applications.mk | 23 +- make/archives.mk | 15 + make/bootstrap.mk | 150 +- make/cleantargets.mk | 5 - make/environment.mk | 3 + make/flashimage.mk | 109 +- make/kernel-arm.mk | 96 + make/kernel.mk | 14 +- make/libraries.mk | 16 - make/versions.mk | 21 +- 24 files changed, 6887 insertions(+), 73 deletions(-) create mode 100644 archive-patches/armbox/hd51_0001-STV-Add-PLS-support.patch create mode 100644 archive-patches/armbox/hd51_0001-STV-Add-SNR-Signal-report-parameters.patch create mode 100644 archive-patches/armbox/hd51_0001-Support-TBS-USB-drivers-for-4.6-kernel.patch create mode 100644 archive-patches/armbox/hd51_0001-TBS-fixes-for-4.6-kernel.patch create mode 100644 archive-patches/armbox/hd51_0001-stv090x-optimized-TS-sync-control.patch create mode 100644 archive-patches/armbox/hd51_TBS-fixes-for-4.10-kernel.patch create mode 100644 archive-patches/armbox/hd51_blacklist_mmc0.patch create mode 100644 archive-patches/armbox/hd51_blindscan2.patch create mode 100644 archive-patches/armbox/hd51_defconfig create mode 100644 archive-patches/armbox/hd51_export_pmpoweroffprepare.patch create mode 100644 archive-patches/armbox/hd51_reserve_dvb_adapter_0.patch create mode 100644 archive-patches/host-mtd-utils-1.5.2.patch create mode 100644 archive-patches/module-init-tools-3.16.patch create mode 100644 make/kernel-arm.mk diff --git a/Makefile b/Makefile index a928da7..8e949b5 100755 --- a/Makefile +++ b/Makefile @@ -22,6 +22,7 @@ include make/multimedia.mk include make/rootfs.mk include make/bootloader.mk include make/kernel.mk +include make/kernel-arm.mk include make/drivers.mk include make/flashimage.mk include make/cleantargets.mk @@ -60,8 +61,8 @@ printenv: @echo " * make bootstrap - prepares for building" @echo " * make neutrino - builds neutrino" @echo " * make bootloader - builds bootloader" - @echo " * make cskernel - builds the CST kernel" - @echo " * make cskernel-image - builds the CST kernel-image for u-boot" + @echo " * make kernel - builds the kernel CST / ARM" + @echo " * make kernel-image - builds the CST kernel-image for u-boot" @echo " * make print-targets - print out all available targets" @echo "" @echo " ...and some more make targets:" @@ -153,8 +154,13 @@ wittinobi-neutrino: @echo ' ============================================================================== ' @echo "" -wittinobi-neutrino-flash: - $(MAKE) neutrino applications multimedia plugins skeleton rootfs flash-prepare flash flash-check flash-finalize +armbox-flashimage: + $(MAKE) flash-image-hd51-multi-disk flash-image-hd51-multi-rootfs + +coolstream-flashimage: + $(MAKE) flash flash-check flash-finalize + +wittinobi-neutrino-flash: $(MAKE) neutrino applications multimedia plugins skeleton rootfs flash-prepare $(BOXTYPE)-flashimage @echo "" @echo ' ============================================================================== ' @echo -e " \033[32mmake wittinobi-neutrino-flash done\033[0m" @@ -188,17 +194,9 @@ prerequisites-armbox: prerequisites: prerequisites-$(BOXTYPE) -# bootstrap.mk -BOOTSTRAP = targetprefix $(BUILD_TMP) $(CROSS_BASE) $(HOSTPREFIX)/bin -BOOTSTRAP += pkg-config includes-and-libs modules -BOOTSTRAP += $(TARGETPREFIX)/lib/libc.so.6 -BOOTSTRAP += $(ARCHIVE) -BOOTSTRAP += $(HOSTPREFIX)/bin/get-git-archive.sh - -bootstrap: $(BOOTSTRAP) - includes-and-libs: $(MAKE) $(TARGETPREFIX)/lib $(TARGETPREFIX)/lib/firmware + modules: $(MAKE) $(TARGETPREFIX)/lib/modules/$(KVERSION_FULL) @@ -315,7 +313,7 @@ plugins: # kernel.mk kernel: - $(MAKE) $(D)/cskernel + $(MAKE) $(D)/kernel-$(BOXTYPE) # bootloader.mk (needed and included by kernel.mk > $(D)/cskernel) bootloader: diff --git a/archive-patches/armbox/hd51_0001-STV-Add-PLS-support.patch b/archive-patches/armbox/hd51_0001-STV-Add-PLS-support.patch new file mode 100644 index 0000000..1780832 --- /dev/null +++ b/archive-patches/armbox/hd51_0001-STV-Add-PLS-support.patch @@ -0,0 +1,94 @@ +From 4bbe1b749c6f01a7a2648714f195802517e138ed Mon Sep 17 00:00:00 2001 +From: Athanasios Oikonomou +Date: Sat, 5 Mar 2016 00:32:57 +0200 +Subject: [PATCH] STV: Add PLS support + + +diff --git a/drivers/media/dvb-frontends/stv0900_core.c b/drivers/media/dvb-frontends/stv0900_core.c +index fe31dd5..3a5df06 100644 +--- a/drivers/media/dvb-frontends/stv0900_core.c ++++ b/drivers/media/dvb-frontends/stv0900_core.c +@@ -1554,12 +1554,25 @@ static int stv0900_status(struct stv0900_internal *intp, + return locked; + } + ++static int stv0900_set_pls(struct stv0900_internal *intp, ++ enum fe_stv0900_demod_num demod, u8 pls_mode, u32 pls_code) ++{ ++ enum fe_stv0900_error error = STV0900_NO_ERROR; ++ ++ dprintk("Set PLS code %d (mode %d)", pls_code, pls_mode); ++ stv0900_write_reg(intp, PLROOT2, (pls_mode<<2) | (pls_code>>16)); ++ stv0900_write_reg(intp, PLROOT1, pls_code>>8); ++ stv0900_write_reg(intp, PLROOT0, pls_code); ++ ++ return error; ++} ++ + static int stv0900_set_mis(struct stv0900_internal *intp, + enum fe_stv0900_demod_num demod, int mis) + { + dprintk("%s\n", __func__); + +- if (mis < 0 || mis > 255) { ++ if (mis == NO_STREAM_ID_FILTER) { + dprintk("Disable MIS filtering\n"); + stv0900_write_bits(intp, FILTER_EN, 0); + } else { +@@ -1593,6 +1606,7 @@ static enum dvbfe_search stv0900_search(struct dvb_frontend *fe) + if (state->config->set_ts_params) + state->config->set_ts_params(fe, 0); + ++ stv0900_set_pls(intp, demod, (c->stream_id>>26) & 0x3, (c->stream_id>>8) & 0x3FFFF); + stv0900_set_mis(intp, demod, c->stream_id); + + p_result.locked = FALSE; +diff --git a/drivers/media/dvb-frontends/stv090x.c b/drivers/media/dvb-frontends/stv090x.c +index ce99b9d..264c4b8 100644 +--- a/drivers/media/dvb-frontends/stv090x.c ++++ b/drivers/media/dvb-frontends/stv090x.c +@@ -3429,18 +3429,40 @@ err: + return -1; + } + ++static int stv090x_set_pls(struct stv090x_state *state, u8 pls_mode, u32 pls_code) ++{ ++ if (pls_mode == 0 && pls_code == 0) ++ pls_code = 1; ++ pls_mode &= 0x03; ++ pls_code &= 0x3FFFF; ++ ++ dprintk(FE_DEBUG, 1, "Set PLS code %d (mode %d)", pls_code, pls_mode); ++ if (STV090x_WRITE_DEMOD(state, PLROOT2, (pls_mode<<2) | (pls_code>>16)) < 0) ++ goto err; ++ if (STV090x_WRITE_DEMOD(state, PLROOT1, pls_code>>8) < 0) ++ goto err; ++ if (STV090x_WRITE_DEMOD(state, PLROOT0, pls_code) < 0) ++ goto err; ++ return 0; ++err: ++ dprintk(FE_ERROR, 1, "I/O error"); ++ return -1; ++} ++ + static int stv090x_set_mis(struct stv090x_state *state, int mis) + { + u32 reg; + +- if (mis < 0 || mis > 255) { ++ if (mis == NO_STREAM_ID_FILTER) { + dprintk(FE_DEBUG, 1, "Disable MIS filtering"); ++ stv090x_set_pls(state, 0, 0); + reg = STV090x_READ_DEMOD(state, PDELCTRL1); + STV090x_SETFIELD_Px(reg, FILTER_EN_FIELD, 0x00); + if (STV090x_WRITE_DEMOD(state, PDELCTRL1, reg) < 0) + goto err; + } else { + dprintk(FE_DEBUG, 1, "Enable MIS filtering - %d", mis); ++ stv090x_set_pls(state, (mis>>26) & 0x3, (mis>>8) & 0x3FFFF); + reg = STV090x_READ_DEMOD(state, PDELCTRL1); + STV090x_SETFIELD_Px(reg, FILTER_EN_FIELD, 0x01); + if (STV090x_WRITE_DEMOD(state, PDELCTRL1, reg) < 0) +-- +2.1.4 + diff --git a/archive-patches/armbox/hd51_0001-STV-Add-SNR-Signal-report-parameters.patch b/archive-patches/armbox/hd51_0001-STV-Add-SNR-Signal-report-parameters.patch new file mode 100644 index 0000000..63a0757 --- /dev/null +++ b/archive-patches/armbox/hd51_0001-STV-Add-SNR-Signal-report-parameters.patch @@ -0,0 +1,92 @@ +From 0d3b277d19137c4a0fdadfd1381f1c66515d1b0c Mon Sep 17 00:00:00 2001 +From: Athanasios Oikonomou +Date: Mon, 8 Feb 2016 22:14:31 +0200 +Subject: [PATCH] STV: Add SNR/Signal report parameters + + +diff --git a/drivers/media/dvb-frontends/stv090x.c b/drivers/media/dvb-frontends/stv090x.c +index 264c4b8..12fd3d0 100644 +--- a/drivers/media/dvb-frontends/stv090x.c ++++ b/drivers/media/dvb-frontends/stv090x.c +@@ -41,6 +41,18 @@ + static unsigned int verbose; + module_param(verbose, int, 0644); + ++/* define how SNR measurement is reported */ ++static int esno; ++module_param(esno, int, 0644); ++MODULE_PARM_DESC(esno, "SNR is reported in 0:Percentage, "\ ++ "1:(EsNo dB)*10 (default:0)"); ++ ++/* define how signal measurement is reported */ ++static int dbm; ++module_param(dbm, int, 0644); ++MODULE_PARM_DESC(dbm, "Signal is reported in 0:Percentage, "\ ++ "1:-1*dBm (default:0)"); ++ + /* internal params node */ + struct stv090x_dev { + /* pointer for internal params, one for each pair of demods */ +@@ -3687,7 +3699,10 @@ static int stv090x_read_signal_strength(struct dvb_frontend *fe, u16 *strength) + str = 0; + else if (agc < stv090x_rf_tab[ARRAY_SIZE(stv090x_rf_tab) - 1].read) + str = -100; +- *strength = (str + 100) * 0xFFFF / 100; ++ if (dbm) ++ *strength = -str; ++ else ++ *strength = (str + 100) * 0xFFFF / 100; + + return 0; + } +@@ -3698,8 +3713,7 @@ static int stv090x_read_cnr(struct dvb_frontend *fe, u16 *cnr) + u32 reg_0, reg_1, reg, i; + s32 val_0, val_1, val = 0; + u8 lock_f; +- s32 div; +- u32 last; ++ s32 snr; + + switch (state->delsys) { + case STV090x_DVBS2: +@@ -3716,10 +3730,14 @@ static int stv090x_read_cnr(struct dvb_frontend *fe, u16 *cnr) + msleep(1); + } + val /= 16; +- last = ARRAY_SIZE(stv090x_s2cn_tab) - 1; +- div = stv090x_s2cn_tab[0].read - +- stv090x_s2cn_tab[last].read; +- *cnr = 0xFFFF - ((val * 0xFFFF) / div); ++ snr = stv090x_table_lookup(stv090x_s2cn_tab, ++ ARRAY_SIZE(stv090x_s2cn_tab) - 1, val); ++ if (snr < 0) snr = 0; ++ if (snr > 200) snr = 200; ++ if (esno) ++ *cnr = snr; ++ else ++ *cnr = snr * 0xFFFF / 200; + } + break; + +@@ -3738,10 +3756,14 @@ static int stv090x_read_cnr(struct dvb_frontend *fe, u16 *cnr) + msleep(1); + } + val /= 16; +- last = ARRAY_SIZE(stv090x_s1cn_tab) - 1; +- div = stv090x_s1cn_tab[0].read - +- stv090x_s1cn_tab[last].read; +- *cnr = 0xFFFF - ((val * 0xFFFF) / div); ++ snr = stv090x_table_lookup(stv090x_s1cn_tab, ++ ARRAY_SIZE(stv090x_s1cn_tab) - 1, val); ++ if (snr < 0) snr = 0; ++ if (snr > 200) snr = 200; ++ if (esno) ++ *cnr = snr; ++ else ++ *cnr = snr * 0xFFFF / 200; + } + break; + default: +-- +2.1.4 + diff --git a/archive-patches/armbox/hd51_0001-Support-TBS-USB-drivers-for-4.6-kernel.patch b/archive-patches/armbox/hd51_0001-Support-TBS-USB-drivers-for-4.6-kernel.patch new file mode 100644 index 0000000..b7acd60 --- /dev/null +++ b/archive-patches/armbox/hd51_0001-Support-TBS-USB-drivers-for-4.6-kernel.patch @@ -0,0 +1,1334 @@ +From 6f6cb195b8f7dbc2d0b4e31a2da4cd58bd69f6bf Mon Sep 17 00:00:00 2001 +From: Athanasios Oikonomou +Date: Sat, 5 Mar 2016 00:29:45 +0200 +Subject: [PATCH] Support TBS USB drivers + +This patch add supports for TBS USB drivers based on the following patches: + +https://patchwork.linuxtv.org/patch/23244/ +https://patchwork.linuxtv.org/patch/23243/ +https://patchwork.linuxtv.org/patch/23242/ + +diff --git a/drivers/media/dvb-core/dvb-usb-ids.h b/drivers/media/dvb-core/dvb-usb-ids.h +index c117fb3..5e0735b 100644 +--- a/drivers/media/dvb-core/dvb-usb-ids.h ++++ b/drivers/media/dvb-core/dvb-usb-ids.h +@@ -78,6 +78,7 @@ + #define USB_VID_EVOLUTEPC 0x1e59 + #define USB_VID_AZUREWAVE 0x13d3 + #define USB_VID_TECHNISAT 0x14f7 ++#define USB_VID_TENOW 0x734c + + /* Product IDs */ + #define USB_PID_ADSTECH_USB2_COLD 0xa333 +@@ -413,4 +414,10 @@ + #define USB_PID_TURBOX_DTT_2000 0xd3a4 + #define USB_PID_EVOLVEO_XTRATV_STICK 0xa115 + #define USB_PID_WINTV_SOLOHD 0x0264 ++#define USB_PID_TENOW_TBS5910 0x5910 ++#define USB_PID_TENOW_TBS5920 0x5920 ++#define USB_PID_TENOW_TBS5921 0x5921 ++#define USB_PID_TENOW_TBS5925 0x5925 ++#define USB_PID_TENOW_TBS5928 0x5928 ++#define USB_PID_TENOW_TBS5980 0x5980 + #endif +diff --git a/drivers/media/dvb-frontends/cx24116.c b/drivers/media/dvb-frontends/cx24116.c +index 8814f36..5ccfeb3 100644 +--- a/drivers/media/dvb-frontends/cx24116.c ++++ b/drivers/media/dvb-frontends/cx24116.c +@@ -705,6 +705,9 @@ static int cx24116_read_status(struct dvb_frontend *fe, enum fe_status *status) + if (lock & CX24116_HAS_SYNCLOCK) + *status |= FE_HAS_SYNC | FE_HAS_LOCK; + ++ if (state->config->set_lock_led) ++ state->config->set_lock_led(fe, *status & FE_HAS_LOCK); ++ + return 0; + } + +@@ -1113,6 +1116,10 @@ static void cx24116_release(struct dvb_frontend *fe) + { + struct cx24116_state *state = fe->demodulator_priv; + dprintk("%s\n", __func__); ++ ++ if (state->config->set_lock_led) ++ state->config->set_lock_led(fe, 0); ++ + kfree(state); + } + +@@ -1198,6 +1205,9 @@ static int cx24116_sleep(struct dvb_frontend *fe) + + dprintk("%s()\n", __func__); + ++ if (state->config->set_lock_led) ++ state->config->set_lock_led(fe, 0); ++ + /* Firmware CMD 36: Power config */ + cmd.args[0x00] = CMD_TUNERSLEEP; + cmd.args[0x01] = 1; +diff --git a/drivers/media/dvb-frontends/cx24116.h b/drivers/media/dvb-frontends/cx24116.h +index f6dbabc..7cbb907 100644 +--- a/drivers/media/dvb-frontends/cx24116.h ++++ b/drivers/media/dvb-frontends/cx24116.h +@@ -38,6 +38,9 @@ struct cx24116_config { + + /* max bytes I2C provider can write at once */ + u16 i2c_wr_max; ++ ++ /* Hook for Lock LED */ ++ void (*set_lock_led)(struct dvb_frontend *fe, int offon); + }; + + #if IS_REACHABLE(CONFIG_DVB_CX24116) +diff --git a/drivers/media/dvb-frontends/stv0288.c b/drivers/media/dvb-frontends/stv0288.c +index c93d9a4..9dcd922 100644 +--- a/drivers/media/dvb-frontends/stv0288.c ++++ b/drivers/media/dvb-frontends/stv0288.c +@@ -382,6 +382,9 @@ static int stv0288_read_status(struct dvb_frontend *fe, enum fe_status *status) + dprintk("stv0288 has locked\n"); + } + ++ if (state->config->set_lock_led) ++ state->config->set_lock_led(fe, *status & FE_HAS_LOCK); ++ + return 0; + } + +@@ -416,6 +419,9 @@ static int stv0288_sleep(struct dvb_frontend *fe) + { + struct stv0288_state *state = fe->demodulator_priv; + ++ if (state->config->set_lock_led) ++ state->config->set_lock_led(fe, 0); ++ + stv0288_writeregI(state, 0x41, 0x84); + state->initialised = 0; + +@@ -532,6 +538,10 @@ static int stv0288_i2c_gate_ctrl(struct dvb_frontend *fe, int enable) + static void stv0288_release(struct dvb_frontend *fe) + { + struct stv0288_state *state = fe->demodulator_priv; ++ ++ if (state->config->set_lock_led) ++ state->config->set_lock_led(fe, 0); ++ + kfree(state); + } + +diff --git a/drivers/media/dvb-frontends/stv0288.h b/drivers/media/dvb-frontends/stv0288.h +index b58603c..01d8481 100644 +--- a/drivers/media/dvb-frontends/stv0288.h ++++ b/drivers/media/dvb-frontends/stv0288.h +@@ -40,6 +40,9 @@ struct stv0288_config { + int min_delay_ms; + + int (*set_ts_params)(struct dvb_frontend *fe, int is_punctured); ++ ++ /* Hook for Lock LED */ ++ void (*set_lock_led)(struct dvb_frontend *fe, int offon); + }; + + #if IS_REACHABLE(CONFIG_DVB_STV0288) +diff --git a/drivers/media/dvb-frontends/stv090x.c b/drivers/media/dvb-frontends/stv090x.c +index 25bdf6e..ce99b9d 100644 +--- a/drivers/media/dvb-frontends/stv090x.c ++++ b/drivers/media/dvb-frontends/stv090x.c +@@ -3553,6 +3553,9 @@ static int stv090x_read_status(struct dvb_frontend *fe, enum fe_status *status) + break; + } + ++ if (state->config->set_lock_led) ++ state->config->set_lock_led(fe, *status & FE_HAS_LOCK); ++ + return 0; + } + +@@ -3901,6 +3904,9 @@ static int stv090x_sleep(struct dvb_frontend *fe) + u32 reg; + u8 full_standby = 0; + ++ if (state->config->set_lock_led) ++ state->config->set_lock_led(fe, 0); ++ + if (stv090x_i2c_gate_ctrl(state, 1) < 0) + goto err; + +@@ -4132,6 +4138,9 @@ static void stv090x_release(struct dvb_frontend *fe) + { + struct stv090x_state *state = fe->demodulator_priv; + ++ if (state->config->set_lock_led) ++ state->config->set_lock_led(fe, 0); ++ + state->internal->num_used--; + if (state->internal->num_used <= 0) { + +diff --git a/drivers/media/dvb-frontends/stv090x.h b/drivers/media/dvb-frontends/stv090x.h +index 012e55e..545f43a 100644 +--- a/drivers/media/dvb-frontends/stv090x.h ++++ b/drivers/media/dvb-frontends/stv090x.h +@@ -89,6 +89,8 @@ struct stv090x_config { + + bool diseqc_envelope_mode; + ++ /* Hook for Lock LED */ ++ void (*set_lock_led) (struct dvb_frontend *fe, int offon); + int (*tuner_init)(struct dvb_frontend *fe); + int (*tuner_sleep)(struct dvb_frontend *fe); + int (*tuner_set_mode)(struct dvb_frontend *fe, enum tuner_mode mode); +diff --git a/drivers/media/dvb-frontends/tda10071.h b/drivers/media/dvb-frontends/tda10071.h +index 8f18402..891e007 100644 +--- a/drivers/media/dvb-frontends/tda10071.h ++++ b/drivers/media/dvb-frontends/tda10071.h +@@ -49,6 +49,9 @@ struct tda10071_platform_data { + u8 pll_multiplier; + u8 tuner_i2c_addr; + ++ /* Hook for Lock LED */ ++ void (*set_lock_led)(struct dvb_frontend *fe, int offon); ++ + struct dvb_frontend* (*get_dvb_frontend)(struct i2c_client *); + }; + +diff --git a/drivers/media/usb/dvb-usb/Kconfig b/drivers/media/usb/dvb-usb/Kconfig +index 128eee6..49c34f9 100644 +--- a/drivers/media/usb/dvb-usb/Kconfig ++++ b/drivers/media/usb/dvb-usb/Kconfig +@@ -331,3 +331,23 @@ config DVB_USB_TECHNISAT_USB2 + select DVB_STV6110x if MEDIA_SUBDRV_AUTOSELECT + help + Say Y here to support the Technisat USB2 DVB-S/S2 device ++ ++config DVB_USB_TBS ++ tristate "TurboSight DVB-S/S2 USB2.0 support" ++ depends on DVB_USB ++ select DVB_PLL if MEDIA_SUBDRV_AUTOSELECT ++ select DVB_STV090x if MEDIA_SUBDRV_AUTOSELECT ++ select DVB_STB6100 if MEDIA_SUBDRV_AUTOSELECT ++ select DVB_CX24116 if MEDIA_SUBDRV_AUTOSELECT ++ select DVB_TDA10071 if MEDIA_SUBDRV_AUTOSELECT ++ select DVB_STV0299 if MEDIA_SUBDRV_AUTOSELECT ++ select DVB_STV0288 if MEDIA_SUBDRV_AUTOSELECT ++ select DVB_STB6000 if MEDIA_SUBDRV_AUTOSELECT ++ help ++ Say Y here to support TurboSight (TBS) DVB-S/S2 USB2.0 receivers. ++ Required firmware can be found at http://www.tbsdtv.com/download/ ++ The tda10071 (TBS5921) firmware can be downloaded by executing: ++ Documentation/dvb/get_dvb_firmware tda10071 ++ ++ Supported devices are: ++ TBS5980 TBS5928 TBS5925 TBS5921 TBS5920 TBS5910 +diff --git a/drivers/media/usb/dvb-usb/Makefile b/drivers/media/usb/dvb-usb/Makefile +index acdd1ef..cb00137 100644 +--- a/drivers/media/usb/dvb-usb/Makefile ++++ b/drivers/media/usb/dvb-usb/Makefile +@@ -79,6 +79,9 @@ obj-$(CONFIG_DVB_USB_AZ6027) += dvb-usb-az6027.o + dvb-usb-technisat-usb2-objs := technisat-usb2.o + obj-$(CONFIG_DVB_USB_TECHNISAT_USB2) += dvb-usb-technisat-usb2.o + ++dvb-usb-tbsusb-objs := tbs-usb.o ++obj-$(CONFIG_DVB_USB_TBS) += dvb-usb-tbsusb.o ++ + ccflags-y += -I$(srctree)/drivers/media/dvb-core + ccflags-y += -I$(srctree)/drivers/media/dvb-frontends/ + # due to tuner-xc3028 +diff --git a/drivers/media/usb/dvb-usb/tbs-usb.c b/drivers/media/usb/dvb-usb/tbs-usb.c +new file mode 100644 +index 0000000..f142be3 +--- /dev/null ++++ b/drivers/media/usb/dvb-usb/tbs-usb.c +@@ -0,0 +1,1075 @@ ++/* ++ * TBS 5980/5928/5925/5921/5920/5910 DVB-S/S2 driver ++ * ++ * Copyright (c) 2008 Bob Liu (Bob@Turbosight.com) ++ * Igor M. Liplianin (liplianin@me.by) ++ * Copyright (c) 2009 Konstantin Dimitrov ++ * Copyright (c) 2014 Andreas Steinmetz ++ * Lock LED and TBS5921 stuff shamelessly taken from ++ * CrazyCat's Bitbucket repository ++ * TBS5925 Open Source version shamelessly taken from ++ * UpdateLee's Bitbucket repository ++ * ++ * This program is free software; you can redistribute it and/or modify it ++ * under the terms of the GNU General Public License as published by the ++ * Free Software Foundation, version 2. ++ * ++ */ ++ ++#include ++#include "tbs-usb.h" ++ ++#include "stv6110x.h" ++#include "stv090x.h" ++#include "stb6100.h" ++#include "stb6100_cfg.h" ++ ++#include "cx24116.h" ++ ++#include "stv0299.h" ++#include "stv0288.h" ++#include "stb6000.h" ++ ++#include "tda10071.h" ++ ++#include "dvb_ca_en50221.h" ++ ++struct tbsusbci_state { ++ u8 buf[20]; ++ struct dvb_ca_en50221 ca; ++ struct mutex ca_mutex; ++}; ++ ++struct tbsusb_state { ++ u8 buf[20]; ++}; ++ ++static int dvb_usb_tbsusb_debug; ++module_param_named(debug, dvb_usb_tbsusb_debug, int, 0644); ++MODULE_PARM_DESC(debug, "set debugging level (1=info 2=xfer (or-able))." ++ DVB_USB_DEBUG_STATUS); ++ ++DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr); ++ ++static struct rc_map_table tbsusb_rc_keys[] = { ++ { 0xff84, KEY_POWER2}, /* power */ ++ { 0xff94, KEY_MUTE}, /* mute */ ++ { 0xff87, KEY_1}, ++ { 0xff86, KEY_2}, ++ { 0xff85, KEY_3}, ++ { 0xff8b, KEY_4}, ++ { 0xff8a, KEY_5}, ++ { 0xff89, KEY_6}, ++ { 0xff8f, KEY_7}, ++ { 0xff8e, KEY_8}, ++ { 0xff8d, KEY_9}, ++ { 0xff92, KEY_0}, ++ { 0xff96, KEY_CHANNELUP}, /* ch+ */ ++ { 0xff91, KEY_CHANNELDOWN}, /* ch- */ ++ { 0xff93, KEY_VOLUMEUP}, /* vol+ */ ++ { 0xff8c, KEY_VOLUMEDOWN}, /* vol- */ ++ { 0xff83, KEY_RECORD}, /* rec */ ++ { 0xff98, KEY_PAUSE}, /* pause, yellow */ ++ { 0xff99, KEY_OK}, /* ok */ ++ { 0xff9a, KEY_CAMERA}, /* snapshot */ ++ { 0xff81, KEY_UP}, ++ { 0xff90, KEY_LEFT}, ++ { 0xff82, KEY_RIGHT}, ++ { 0xff88, KEY_DOWN}, ++ { 0xff95, KEY_FAVORITES}, /* blue */ ++ { 0xff97, KEY_SUBTITLE}, /* green */ ++ { 0xff9d, KEY_ZOOM}, ++ { 0xff9f, KEY_EXIT}, ++ { 0xff9e, KEY_MENU}, ++ { 0xff9c, KEY_EPG}, ++ { 0xff80, KEY_PREVIOUS}, /* red */ ++ { 0xff9b, KEY_MODE}, ++ { 0xffdd, KEY_TV }, ++ { 0xffde, KEY_PLAY }, ++ { 0xffdc, KEY_STOP }, ++ { 0xffdb, KEY_REWIND }, ++ { 0xffda, KEY_FASTFORWARD }, ++ { 0xffd9, KEY_PREVIOUS }, /* replay */ ++ { 0xffd8, KEY_NEXT }, /* skip */ ++ { 0xffd1, KEY_NUMERIC_STAR }, ++ { 0xffd2, KEY_NUMERIC_POUND }, ++ { 0xffd4, KEY_DELETE }, /* clear */ ++}; ++ ++static int tbsusb_op_r_unlocked(struct usb_device *dev, int num, u8 request, ++ u16 value, u16 index, u8 *data, int len) ++{ ++ int ret; ++ ++ ret = usb_control_msg(dev, usb_rcvctrlpipe(dev, 0), request, ++ USB_TYPE_VENDOR | USB_DIR_IN, value, index, data, len, 2000); ++ ++ /* oh well, rc poll returns -EOVERFLOW but also the required data */ ++ if (ret == -EOVERFLOW && request == 0xb8) ++ ret = 0; ++ else if (ret < 0) { ++ warn("usb read 0x%02x/%d from adapter %d failed. (%d)", ++ request, len, num, ret); ++ ret = -EIO; ++ } else ++ ret = 0; ++ ++ deb_xfer("read: adap.: %d, req. %02x, val: %04x, ind: %04x, buffer: ", ++ num, request, value, index); ++ debug_dump(data, len, deb_xfer); ++ ++ return ret; ++} ++ ++static int tbsusb_op_w_unlocked(struct usb_device *dev, int num, u8 request, ++ u16 value, u16 index, u8 *data, int len) ++{ ++ int ret; ++ ++ deb_xfer("write: adap.: %d, req. %02x, val: %04x, ind: %04x, buffer: ", ++ num, request, value, index); ++ debug_dump(data, len, deb_xfer); ++ ++ ret = usb_control_msg(dev, usb_sndctrlpipe(dev, 0), request, ++ USB_TYPE_VENDOR | USB_DIR_OUT, value, index, data, len, 2000); ++ ++ if (ret != len) { ++ warn("usb write 0x%02x/%d to adapter %d failed. (%d)", ++ request, len, num, ret); ++ ret = -EIO; ++ } else ++ ret = 0; ++ ++ return ret; ++} ++ ++static int tbsusb_load_firmware(struct usb_device *dev, ++ const struct firmware *frmwr) ++{ ++ u8 *b; ++ int ret, i, j; ++ ++ if (!dev || !frmwr) ++ return -ENODEV; ++ ++ b = kmalloc(0x40, GFP_KERNEL); ++ if (!b) ++ return -ENOMEM; ++ ++ /*stop the CPU*/ ++ b[0] = 1; ++ ret = tbsusb_op_w_unlocked(dev, -1, 0xa0, 0x7f92, 0, b, 1); ++ if (!ret) ++ ret = tbsusb_op_w_unlocked(dev, -1, 0xa0, 0xe600, 0, b, 1); ++ if (ret) { ++ err("could not stop the USB controller CPU."); ++ goto err; ++ } ++ ++ for (i = 0; i < frmwr->size; i += 0x40) { ++ j = i & 0x3f; ++ if (!j) ++ j = 0x40; ++ memcpy(b, (u8 *) frmwr->data + i, j); ++ ret = tbsusb_op_w_unlocked(dev, -1, 0xa0, i, 0, b, j); ++ if (ret) { ++ err("error while transferring firmware."); ++ goto err; ++ } ++ } ++ ++ /* restart the CPU */ ++ b[0] = 0; ++ ret = tbsusb_op_w_unlocked(dev, -1, 0xa0, 0x7f92, 0, b, 1); ++ if (!ret) ++ ret = tbsusb_op_w_unlocked(dev, -1, 0xa0, 0xe600, 0, b, 1); ++ if (ret) { ++ err("could not restart the USB controller CPU."); ++ goto err; ++ } ++ ++ msleep(100); ++ ++err: kfree(b); ++ return ret; ++} ++ ++/* without copying the data back and forth usb transfers randomly fail... */ ++ ++static int tbsusb_op_wwr(struct dvb_usb_device *d, u8 wrq, u8 wrrq, int wwait, ++ int wrwait, u8 *wdata, int wlen, u8 *wrdata, ++ int wrlen, int wrop) ++{ ++ struct tbsusb_state *s; ++ u8 *b; ++ int ret, len, num; ++ ++ if (d && d->udev && d->priv) ++ s = (struct tbsusb_state *)d->priv; ++ else ++ return -ENODEV; ++ ++ if (wrlen > wlen) ++ len = wrlen; ++ else ++ len = wlen; ++ ++ if (len > sizeof(s->buf)) { ++ b = kmalloc(len, GFP_KERNEL); ++ if (!b) ++ return -ENOMEM; ++ } else ++ b = s->buf; ++ ++ if (d->adapter[0].fe_adap[0].fe && d->adapter[0].fe_adap[0].fe->dvb) ++ num = d->adapter[0].fe_adap[0].fe->dvb->num; ++ else ++ num = -1; ++ ++ mutex_lock(&d->usb_mutex); ++ if (wdata) { ++ memcpy(b, wdata, wlen); ++ ret = tbsusb_op_w_unlocked(d->udev, num, wrq, 0, 0, b, wlen); ++ if (ret) ++ goto err; ++ if (wwait) ++ usleep_range(wwait, wwait+1000); ++ } ++ if (wrdata) { ++ if (wrop) { ++ memcpy(b, wrdata, wrlen); ++ ret = tbsusb_op_w_unlocked(d->udev, num, wrrq, 0, 0, b, ++ wrlen); ++ } else ++ ret = tbsusb_op_r_unlocked(d->udev, num, wrrq, 0, 0, b, ++ wrlen); ++ if (ret) ++ goto err; ++ if (!wrop) ++ memcpy(wrdata, b, wrlen); ++ if (wrwait) ++ usleep_range(wrwait, wrwait+1000); ++ } ++err: mutex_unlock(&d->usb_mutex); ++ ++ if (len > sizeof(s->buf)) ++ kfree(b); ++ ++ return ret; ++} ++ ++static int tbsusb_op_ww(struct dvb_usb_device *d, u8 wrq1, u8 wrq2, int wwait1, ++ int wwait2, u8 *wdata1, int wlen1, u8 *wdata2, ++ int wlen2) ++{ ++ return tbsusb_op_wwr(d, wrq1, wrq2, wwait1, wwait2, wdata1, wlen1, ++ wdata2, wlen2, 1); ++} ++ ++static int tbsusb_op_wr(struct dvb_usb_device *d, u8 wrq, u8 rrq, int wwait, ++ int rwait, u8 *wdata, int wlen, u8 *rdata, ++ int rlen) ++{ ++ return tbsusb_op_wwr(d, wrq, rrq, wwait, rwait, wdata, wlen, rdata, ++ rlen, 0); ++} ++ ++static int tbsusb_op_w(struct dvb_usb_device *d, u8 req, int uwait, ++ u8 *data, int len) ++{ ++ return tbsusb_op_wwr(d, req, 0x00, uwait, 0, data, len, NULL, 0, 0); ++} ++ ++static int tbsusb_op_r(struct dvb_usb_device *d, u8 req, int uwait, ++ u8 *data, int len) ++{ ++ return tbsusb_op_wwr(d, 0x00, req, 0, uwait, NULL, 0, data, len, 0); ++} ++ ++static int tbsusb_read_mac_address(struct dvb_usb_device *d, u8 mac[6]) ++{ ++ int i, ret; ++ u8 buf[3]; ++ ++ for (i = 0; i < 6; i++) { ++ buf[0] = 1; /* length */ ++ buf[1] = 0xa0; /* eeprom addr */ ++ buf[2] = i + 16; /* register (0-255) */ ++ ret = tbsusb_op_wr(d, 0x90, 0x91, 0, 0, buf, 3, &mac[i], 1); ++ if (ret) { ++ err("eeprom read failed."); ++ return ret; ++ } ++ } ++ return 0; ++}; ++ ++static int tbsusb_rc_query(struct dvb_usb_device *d, u32 *event, int *state) ++{ ++ int i; ++ u8 buf[4]; ++ ++ *state = REMOTE_NO_KEY_PRESSED; ++ ++ i = tbsusb_op_r(d, 0xb8, 3000, buf, 4); ++ if (i) ++ goto out; ++ ++ for (i = 0; i < ARRAY_SIZE(tbsusb_rc_keys); i++) { ++ if (rc5_data(&tbsusb_rc_keys[i]) == buf[3]) { ++ *state = REMOTE_KEY_PRESSED; ++ *event = tbsusb_rc_keys[i].keycode; ++ break; ++ } ++ } ++ ++out: return 0; ++} ++ ++static int tbsusb_set_pin(struct dvb_frontend *fe, u8 *what) ++{ ++ struct dvb_usb_device *d = NULL; ++ ++ if (fe && fe->dvb && fe->dvb->priv) ++ d = ((struct dvb_usb_adapter *)fe->dvb->priv)->dev; ++ if (!d) ++ return -ENODEV; ++ ++ return tbsusb_op_w(d, 0x8a, 0, what, 2); ++} ++ ++static int tbsusb_set_voltage(struct dvb_frontend *fe, ++ fe_sec_voltage_t voltage) ++{ ++ static u8 command_13v[2] = {0x03, 0x00}; ++ static u8 command_18v[2] = {0x03, 0x01}; ++ ++ return tbsusb_set_pin(fe, ++ voltage == SEC_VOLTAGE_18 ? command_18v : command_13v); ++} ++ ++static void tbsusb_led_ctrl(struct dvb_frontend *fe, int onoff) ++{ ++ static u8 led_off[2] = {0x05, 0x00}; ++ static u8 led_on[2] = {0x05, 0x01}; ++ ++ tbsusb_set_pin(fe, onoff ? led_on : led_off); ++} ++ ++static int tbsusb_i2c_transfer(struct i2c_adapter *adap, ++ struct i2c_msg msg[], int num) ++{ ++ struct dvb_usb_device *d = i2c_get_adapdata(adap); ++ int ret = -EINVAL, j = 3000, i; ++ u8 buf[20]; ++ ++ if (!d || !d->desc) ++ return -ENODEV; ++ ++ switch (num<<16 | d->desc->cold_ids[0]->idProduct) { ++ case 0x20000|USB_PID_TENOW_TBS5980: ++ case 0x20000|USB_PID_TENOW_TBS5925: ++ case 0x20000|USB_PID_TENOW_TBS5920: ++ buf[0] = msg[1].len; /* length */ ++ buf[1] = msg[0].addr<<1; /* demod addr */ ++ /* register */ ++ buf[2] = msg[0].buf[0]; ++ buf[3] = msg[0].buf[1]; ++ ++ ret = tbsusb_op_wr(d, 0x92, 0x91, 0, 0, buf, 4, msg[1].buf, ++ msg[1].len); ++ break; ++ case 0x20000|USB_PID_TENOW_TBS5928: ++ case 0x20000|USB_PID_TENOW_TBS5921: ++ /* read */ ++ buf[0] = msg[0].len; /* length */ ++ goto wrop; ++ case 0x20000|USB_PID_TENOW_TBS5910: ++ /* read */ ++ buf[0] = msg[1].len; /* length */ ++wrop: buf[1] = msg[0].addr<<1; /* demod addr */ ++ /* register */ ++ buf[2] = msg[0].buf[0]; ++ ++ ret = tbsusb_op_wr(d, 0x90, 0x91, 5000, 0, buf, 3, msg[1].buf, ++ msg[1].len); ++ break; ++ case 0x10000|USB_PID_TENOW_TBS5980: ++ case 0x10000|USB_PID_TENOW_TBS5925: ++ case 0x10000|USB_PID_TENOW_TBS5920: ++ switch (msg[0].addr) { ++ case 0x6a: ++ case 0x68: ++ case 0x61: ++ case 0x60: ++ if (!msg[0].flags) { ++ j = 0; ++ goto wraddr; ++ } else { ++ buf[0] = msg[0].len; /* length */ ++ buf[1] = msg[0].addr<<1; /* addr */ ++ buf[2] = 0x00; ++ ret = tbsusb_op_wr(d, 0x90, 0x91, 0, 0, buf, 3, ++ msg[0].buf, msg[0].len); ++ } ++ break; ++ } ++ break; ++ case 0x10000|USB_PID_TENOW_TBS5928: ++ switch (msg[0].addr) { ++ case 0x55: ++ if (msg[0].buf[0] == 0xf7) { ++ /* firmware */ ++ /* Write in small blocks */ ++ buf[2] = 0xf7; ++ goto wrfw; ++ } else { ++ /* write to register */ ++ j = 0; ++ goto wraddr; ++ } ++ break; ++ case 0x60: ++ /* write to register */ ++ goto wraddr; ++ } ++ break; ++ case 0x10000|USB_PID_TENOW_TBS5921: ++ switch (msg[0].addr) { ++ case 0x55: ++ if (msg[0].buf[0] == 0xfa) { ++ /* firmware */ ++ /* Write in small blocks */ ++ buf[2] = 0xfa; ++wrfw: buf[0] = 0x12; ++ buf[1] = 0xaa; ++ j = msg[0].len - 1; ++ i = 1; ++ do { ++ memcpy(buf + 3, msg[0].buf + i, ++ j > 16 ? 16 : j); ++ ret = tbsusb_op_w(d, 0x80, 0, buf, ++ j > 16 ? 19 : j+3); ++ i += 16; ++ j -= 16; ++ } while (!ret && j > 0); ++ } else { ++ /* write to register */ ++ j = 0; ++ goto wraddr; ++ } ++ break; ++ case 0x60: ++ /* write to register */ ++ goto wraddr; ++ break; ++ } ++ break; ++ case 0x10000|USB_PID_TENOW_TBS5910: ++ switch (msg[0].addr) { ++ case 0x61: ++ case 0x60: ++ if (!msg[0].flags) { ++ /* write to tuner pll */ ++ goto wraddr; ++ } ++ break; ++ case 0x68: ++ /* write to stv0299 register */ ++wraddr: if (msg[0].len+2 > sizeof(buf)) ++ break; ++ buf[0] = msg[0].len+1; /* length */ ++ buf[1] = msg[0].addr<<1; /* addr */ ++ /* register */ ++ memcpy(buf+2, msg[0].buf, msg[0].len); ++ ret = tbsusb_op_w(d, 0x80, j, buf, msg[0].len+2); ++ break; ++ } ++ break; ++ } ++ ++ if (ret) ++ return ret; ++ return num; ++} ++ ++static u32 tbsusb_i2c_func(struct i2c_adapter *adapter) ++{ ++ return I2C_FUNC_I2C; ++} ++ ++static struct i2c_algorithm tbsusb_i2c_algo = { ++ .master_xfer = tbsusb_i2c_transfer, ++ .functionality = tbsusb_i2c_func, ++}; ++ ++static int tbsusb_ci_setup(struct dvb_ca_en50221 *ca, struct dvb_usb_device **d, ++ struct tbsusbci_state **state, int slot) ++{ ++ if (slot) ++ return -EINVAL; ++ if (ca && ca->data) { ++ *d = (struct dvb_usb_device *)ca->data; ++ if (*d && (*d)->udev && (*d)->priv) { ++ *state = (struct tbsusbci_state *)(*d)->priv; ++ mutex_lock(&(*state)->ca_mutex); ++ return 0; ++ } ++ } ++ return -ENODEV; ++} ++ ++static void tbsusb_ci_finish(struct tbsusbci_state *state) ++{ ++ mutex_unlock(&state->ca_mutex); ++} ++ ++static int tbsusb_slot_reset(struct dvb_ca_en50221 *ca, int slot) ++{ ++ static u8 msg1[2] = {0x01, 0x00}; ++ static u8 msg2[2] = {0x01, 0x01}; ++ struct dvb_usb_device *d; ++ struct tbsusbci_state *state; ++ int ret; ++ ++ ret = tbsusb_ci_setup(ca, &d, &state, slot); ++ if (ret) ++ return ret; ++ ++ ret = tbsusb_op_ww(d, 0xa6, 0xa6, 5000, 0, msg1, 2, msg2, 2); ++ if (!ret) ++ msleep(1400); ++ ++ tbsusb_ci_finish(state); ++ ++ return ret; ++} ++ ++static int tbsusb_cam_read(struct dvb_ca_en50221 *ca, int slot, int address, ++ u8 where) ++{ ++ struct dvb_usb_device *d; ++ struct tbsusbci_state *state; ++ int ret; ++ u8 buf[4], rbuf[1]; ++ ++ buf[0] = 1; ++ buf[1] = where; ++ buf[2] = (address >> 8) & 0x0f; ++ buf[3] = address; ++ ++ ret = tbsusb_ci_setup(ca, &d, &state, slot); ++ if (ret) ++ return ret; ++ ++ ret = tbsusb_op_wr(d, 0xa4, 0xa5, 0, 0, buf, 4, rbuf, 1); ++ ++ tbsusb_ci_finish(state); ++ ++ if (ret) ++ return ret; ++ ++ return rbuf[0]; ++} ++ ++static int tbsusb_cam_write(struct dvb_ca_en50221 *ca, int slot, int address, ++ u8 value, u8 where) ++{ ++ struct dvb_usb_device *d; ++ struct tbsusbci_state *state; ++ int ret; ++ u8 buf[5]; ++ ++ buf[0] = 1; ++ buf[1] = where; ++ buf[2] = (address >> 8) & 0x0f; ++ buf[3] = address; ++ buf[4] = value; ++ ++ ret = tbsusb_ci_setup(ca, &d, &state, slot); ++ if (ret) ++ return ret; ++ ++ ret = tbsusb_op_w(d, 0xa2, 0, buf, 5); ++ ++ tbsusb_ci_finish(state); ++ ++ if (ret) ++ return ret; ++ ++ return 0; ++} ++ ++static int tbsusb_read_attribute_mem(struct dvb_ca_en50221 *ca, ++ int slot, int address) ++{ ++ return tbsusb_cam_read(ca, slot, address, 0); ++} ++ ++static int tbsusb_write_attribute_mem(struct dvb_ca_en50221 *ca, ++ int slot, int address, u8 value) ++{ ++ return tbsusb_cam_write(ca, slot, address, value, 0); ++} ++ ++static int tbsusb_read_cam_control(struct dvb_ca_en50221 *ca, int slot, ++ u8 address) ++{ ++ return tbsusb_cam_read(ca, slot, address, 1); ++} ++ ++static int tbsusb_write_cam_control(struct dvb_ca_en50221 *ca, int slot, ++ u8 address, u8 value) ++{ ++ return tbsusb_cam_write(ca, slot, address, value, 1); ++} ++ ++static int tbsusb_set_video_port(struct dvb_ca_en50221 *ca, ++ int slot, int enable) ++{ ++ struct dvb_usb_device *d; ++ struct tbsusbci_state *state; ++ int ret; ++ u8 buf[2]; ++ ++ buf[0] = 2; ++ buf[1] = enable; ++ ++ ret = tbsusb_ci_setup(ca, &d, &state, slot); ++ if (ret) ++ return ret; ++ ++ ret = tbsusb_op_w(d, 0xa6, 0, buf, 2); ++ ++ tbsusb_ci_finish(state); ++ ++ if (ret) { ++ err("CI not %sabled.", enable ? "en" : "dis"); ++ return ret; ++ } ++ ++ deb_info("CI %sabled.", enable ? "en" : "dis"); ++ return 0; ++} ++ ++static int tbsusb_slot_shutdown(struct dvb_ca_en50221 *ca, int slot) ++{ ++ return tbsusb_set_video_port(ca, slot, 0); ++} ++ ++static int tbsusb_slot_ts_enable(struct dvb_ca_en50221 *ca, int slot) ++{ ++ return tbsusb_set_video_port(ca, slot, 1); ++} ++ ++static int tbsusb_poll_slot_status(struct dvb_ca_en50221 *ca, ++ int slot, int open) ++{ ++ struct dvb_usb_device *d; ++ struct tbsusbci_state *state; ++ int ret; ++ u8 buf[3]; ++ ++ ret = tbsusb_ci_setup(ca, &d, &state, slot); ++ if (ret) ++ return 0; ++ ++ ret = tbsusb_op_r(d, 0xa8, 0, buf, 3); ++ ++ tbsusb_ci_finish(state); ++ ++ if (ret || buf[0] != 0xa9 || buf[1] != 1 || buf[2] != 1) ++ return 0; ++ ++ return DVB_CA_EN50221_POLL_CAM_PRESENT | DVB_CA_EN50221_POLL_CAM_READY; ++} ++ ++static void tbsusbci_uninit(struct dvb_usb_device *d) ++{ ++ struct tbsusbci_state *state; ++ ++ if (d && d->priv) ++ state = (struct tbsusbci_state *)d->priv; ++ else ++ return; ++ ++ if (!state || !state->ca.data) ++ return; ++ ++ dvb_ca_en50221_release(&state->ca); ++ memset(&state->ca, 0, sizeof(state->ca)); ++} ++ ++static int tbsusbci_init(struct dvb_usb_adapter *a) ++{ ++ struct tbsusbci_state *state; ++ int ret = -ENODEV; ++ ++ if (a && a->dev && a->dev->priv) ++ state = (struct tbsusbci_state *)a->dev->priv; ++ else ++ goto err; ++ ++ mutex_init(&state->ca_mutex); ++ ++ state->ca.owner = THIS_MODULE; ++ state->ca.read_attribute_mem = tbsusb_read_attribute_mem; ++ state->ca.write_attribute_mem = tbsusb_write_attribute_mem; ++ state->ca.read_cam_control = tbsusb_read_cam_control; ++ state->ca.write_cam_control = tbsusb_write_cam_control; ++ state->ca.slot_reset = tbsusb_slot_reset; ++ state->ca.slot_shutdown = tbsusb_slot_shutdown; ++ state->ca.slot_ts_enable = tbsusb_slot_ts_enable; ++ state->ca.poll_slot_status = tbsusb_poll_slot_status; ++ state->ca.data = a->dev; ++ ++ ret = dvb_ca_en50221_init(&a->dvb_adap, &state->ca, 0, 1); ++ if (ret) ++ goto err; ++ ++ ret = tbsusb_poll_slot_status(&state->ca, 0, 0); ++ if (!ret) ++ ret = tbsusb_set_video_port(&state->ca, 0, 0); ++ if (ret < 0) { ++ dvb_ca_en50221_release(&state->ca); ++ goto err; ++ } ++ if (ret) ++ deb_info("CI initialized."); ++ return 0; ++ ++err: err("Cannot initialize CI: Error %d.", ret); ++ memset(&state->ca, 0, sizeof(state->ca)); ++ return ret; ++} ++ ++static const struct stv090x_config stv0903_config = { ++ .device = STV0903, ++ .demod_mode = STV090x_SINGLE, ++ .clk_mode = STV090x_CLK_EXT, ++ ++ .xtal = 27000000, ++ .address = 0x6a, ++ ++ .ts1_mode = STV090x_TSMODE_DVBCI, ++ .ts2_mode = STV090x_TSMODE_SERIAL_CONTINUOUS, ++ ++ .repeater_level = STV090x_RPTLEVEL_16, ++ .adc1_range = STV090x_ADC_2Vpp, ++ ++ .tuner_get_frequency = stb6100_get_frequency, ++ .tuner_set_frequency = stb6100_set_frequency, ++ .tuner_set_bandwidth = stb6100_set_bandwidth, ++ .tuner_get_bandwidth = stb6100_get_bandwidth, ++ ++ .set_lock_led = tbsusb_led_ctrl, ++}; ++ ++static const struct stv090x_config stv0900_config = { ++ .device = STV0900, ++ .demod_mode = STV090x_SINGLE, ++ .clk_mode = STV090x_CLK_EXT, ++ ++ .xtal = 27000000, ++ .address = 0x68, ++ ++ .ts1_mode = STV090x_TSMODE_DVBCI, ++ .ts2_mode = STV090x_TSMODE_SERIAL_CONTINUOUS, ++ ++ .repeater_level = STV090x_RPTLEVEL_16, ++ .adc1_range = STV090x_ADC_2Vpp, ++ ++ .tuner_get_frequency = stb6100_get_frequency, ++ .tuner_set_frequency = stb6100_set_frequency, ++ .tuner_set_bandwidth = stb6100_set_bandwidth, ++ .tuner_get_bandwidth = stb6100_get_bandwidth, ++ ++ .set_lock_led = tbsusb_led_ctrl, ++}; ++ ++static const struct tda10071_config tda10071_config = { ++ .demod_i2c_addr = 0x55, /* (0xaa >> 1) */ ++ .tuner_i2c_addr = 0x14, ++ .i2c_wr_max = 64, ++ .ts_mode = TDA10071_TS_PARALLEL, ++ .spec_inv = 0, ++ .xtal = 40444000, /* 40.444 MHz */ ++ .pll_multiplier = 20, ++ .set_lock_led = tbsusb_led_ctrl, ++}; ++ ++static const struct cx24116_config cx24116_config = { ++ .demod_address = 0x55, ++ .mpg_clk_pos_pol = 0x01, ++ .set_lock_led = tbsusb_led_ctrl, ++}; ++ ++static const struct stv0288_config stv0288_config = { ++ .demod_address = 0x68, ++ .set_lock_led = tbsusb_led_ctrl, ++}; ++ ++static int tbsusb_frontend_attach(struct dvb_usb_adapter *d) ++{ ++ static u8 msg1[2] = {0x07, 0x01}; ++ static u8 msg2[2] = {0x01, 0x01}; ++ static u8 msg3[2] = {0x06, 0x01}; ++ u8 *txt; ++ int ret = -ENODEV; ++ ++ if (!d || !d->dev || !d->dev->desc) { ++ d->fe_adap[0].fe = NULL; ++ goto err; ++ } ++ ++ switch (d->dev->desc->cold_ids[0]->idProduct) { ++ case USB_PID_TENOW_TBS5980: ++ case USB_PID_TENOW_TBS5920: ++ d->fe_adap[0].fe = dvb_attach(stv090x_attach, &stv0903_config, ++ &d->dev->i2c_adap, STV090x_DEMODULATOR_0); ++ break; ++ case USB_PID_TENOW_TBS5925: ++ d->fe_adap[0].fe = dvb_attach(stv090x_attach, &stv0900_config, ++ &d->dev->i2c_adap, STV090x_DEMODULATOR_0); ++ break; ++ case USB_PID_TENOW_TBS5928: ++ d->fe_adap[0].fe = dvb_attach(cx24116_attach, &cx24116_config, ++ &d->dev->i2c_adap); ++ break; ++ case USB_PID_TENOW_TBS5910: ++ d->fe_adap[0].fe = dvb_attach(stv0288_attach, &stv0288_config, ++ &d->dev->i2c_adap); ++ break; ++ case USB_PID_TENOW_TBS5921: ++ d->fe_adap[0].fe = dvb_attach(tda10071_attach, &tda10071_config, ++ &d->dev->i2c_adap); ++ } ++ ++ if (!d->fe_adap[0].fe) ++ goto err; ++ ++ d->fe_adap[0].fe->ops.set_voltage = tbsusb_set_voltage; ++ ++ switch (d->dev->desc->cold_ids[0]->idProduct) { ++ case USB_PID_TENOW_TBS5980: ++ txt = "Attached stv0903!"; ++ ret = tbsusb_op_w(d->dev, 0x8a, 0, msg1, 2); ++ if (ret) ++ goto err; ++ ret = tbsusb_op_w(d->dev, 0x8a, 0, msg2, 2); ++ if (ret) ++ goto err; ++ ret = tbsusb_op_w(d->dev, 0x8a, 0, msg3, 2); ++ if (ret) ++ goto err; ++ ret = tbsusbci_init(d); ++ if (ret) ++ goto err; ++ break; ++ case USB_PID_TENOW_TBS5921: ++ txt = "Attached tda10071!"; ++ ret = tbsusb_op_w(d->dev, 0x8a, 0, msg1, 2); ++ if (ret) ++ goto err; ++ ret = tbsusb_op_w(d->dev, 0x8a, 0, msg2, 2); ++ if (ret) ++ goto err; ++ break; ++ case USB_PID_TENOW_TBS5925: ++ txt = "Attached stv0900!"; ++ ret = tbsusb_op_w(d->dev, 0x8a, 0, msg3, 2); ++ if (ret) ++ goto err; ++ ret = tbsusb_op_w(d->dev, 0x8a, 0, msg2, 2); ++ if (ret) ++ goto err; ++ goto wr0701; ++ case USB_PID_TENOW_TBS5920: ++ txt = "Attached stv0903!"; ++ goto wr0701; ++ case USB_PID_TENOW_TBS5928: ++ txt = "Attached cx24116!"; ++ goto wr0701; ++ case USB_PID_TENOW_TBS5910: ++ txt = "Attached stv0288!"; ++wr0701: ret = tbsusb_op_w(d->dev, 0x8a, 0, msg1, 2); ++ if (ret) ++ goto err; ++ break; ++ } ++ ++ deb_info(txt); ++ ++err: if (ret && d->fe_adap[0].fe) { ++ dvb_frontend_detach(d->fe_adap[0].fe); ++ d->fe_adap[0].fe = NULL; ++ } ++ ++ return ret; ++} ++ ++static struct stb6100_config stb6100_config = { ++ .tuner_address = 0x60, ++ .refclock = 27000000, ++}; ++ ++static int tbsusb_tuner_attach(struct dvb_usb_adapter *adap) ++{ ++ int ret = -EIO; ++ ++ if (!adap || !adap->dev || !adap->dev->desc || !adap->fe_adap[0].fe) ++ return -ENODEV; ++ ++ switch (adap->dev->desc->cold_ids[0]->idProduct) { ++ case USB_PID_TENOW_TBS5980: ++ case USB_PID_TENOW_TBS5925: ++ case USB_PID_TENOW_TBS5920: ++ if (!dvb_attach(stb6100_attach, adap->fe_adap[0].fe, ++ &stb6100_config, &adap->dev->i2c_adap)) ++ goto err; ++ else ++ ret = 0; ++ deb_info("Attached stb6100!"); ++ if (adap->dev->desc->cold_ids[0]->idProduct != ++ USB_PID_TENOW_TBS5925) ++ break; ++ /* call the init function once to initialize ++ tuner's clock output divider and demod's ++ master clock */ ++ if (adap->fe_adap[0].fe->ops.init) ++ adap->fe_adap[0].fe->ops.init(adap->fe_adap[0].fe); ++ break; ++ case USB_PID_TENOW_TBS5910: ++ if (!dvb_attach(stb6000_attach, adap->fe_adap[0].fe, 0x61, ++ &adap->dev->i2c_adap)) ++ goto err; ++ else ++ ret = 0; ++ deb_info("Attached stb6000!"); ++ break; ++ } ++ ++err: return ret; ++} ++ ++enum tbsusb_index { ++ TBS5980_INDEX = 0, ++ TBS5925_INDEX, ++ TBS5920_INDEX, ++ TBS5928_INDEX, ++ TBS5910_INDEX, ++ TBS5921_INDEX, ++ TBSMAX_INDEX ++}; ++ ++static struct usb_device_id tbsusb_table[] = { ++ {USB_DEVICE(USB_VID_TENOW, USB_PID_TENOW_TBS5980)}, ++ {USB_DEVICE(USB_VID_TENOW, USB_PID_TENOW_TBS5925)}, ++ {USB_DEVICE(USB_VID_TENOW, USB_PID_TENOW_TBS5920)}, ++ {USB_DEVICE(USB_VID_TENOW, USB_PID_TENOW_TBS5928)}, ++ {USB_DEVICE(USB_VID_TENOW, USB_PID_TENOW_TBS5910)}, ++ {USB_DEVICE(USB_VID_TENOW, USB_PID_TENOW_TBS5921)}, ++ { } ++}; ++ ++MODULE_DEVICE_TABLE(usb, tbsusb_table); ++ ++#define TBSUSB_DEVICE_PROPERTIES(priv, fw, intvl, tunerproc, devname, index) { \ ++ .caps = DVB_USB_IS_AN_I2C_ADAPTER, \ ++ .usb_ctrl = DEVICE_SPECIFIC, \ ++ .size_of_priv = sizeof(struct priv), \ ++ .firmware = fw, \ ++ .no_reconnect = 1, \ ++ .i2c_algo = &tbsusb_i2c_algo, \ ++ .rc.legacy = { \ ++ .rc_map_table = tbsusb_rc_keys, \ ++ .rc_map_size = ARRAY_SIZE(tbsusb_rc_keys), \ ++ .rc_interval = intvl, \ ++ .rc_query = tbsusb_rc_query, \ ++ }, \ ++ .generic_bulk_ctrl_endpoint = 0x81, \ ++ .num_adapters = 1, \ ++ .download_firmware = tbsusb_load_firmware, \ ++ .read_mac_address = tbsusb_read_mac_address, \ ++ .adapter = { { \ ++ .num_frontends = 1, \ ++ .fe = { { \ ++ .frontend_attach = tbsusb_frontend_attach, \ ++ .streaming_ctrl = NULL, \ ++ .tuner_attach = tunerproc, \ ++ .stream = { \ ++ .type = USB_BULK, \ ++ .count = 8, \ ++ .endpoint = 0x82, \ ++ .u = { \ ++ .bulk = { \ ++ .buffersize = 4096, \ ++ } \ ++ } \ ++ }, \ ++ } }, \ ++ } }, \ ++ .num_device_descs = 1, \ ++ .devices = { { \ ++ .name = devname, \ ++ .cold_ids = {&tbsusb_table[index], NULL}, \ ++ .warm_ids = {NULL}, \ ++ } } \ ++} ++ ++static struct dvb_usb_device_properties tbsusb_properties[] = { ++ TBSUSB_DEVICE_PROPERTIES(tbsusbci_state, "dvb-usb-tbsqbox-id5980.fw", ++ 450, tbsusb_tuner_attach, "TBS Qbox DVB-S2 CI USB2.0 (TBS5980)", ++ TBS5980_INDEX), ++ TBSUSB_DEVICE_PROPERTIES(tbsusb_state, "dvb-usb-tbsqbox-id5925.fw", ++ 250, tbsusb_tuner_attach, "TBS 5925 DVB-S2 USB2.0", ++ TBS5925_INDEX), ++ TBSUSB_DEVICE_PROPERTIES(tbsusb_state, "dvb-usb-tbsqbox-id5920.fw", ++ 150, tbsusb_tuner_attach, "TBS QBOX2 DVBS USB2.0 (TBS5920)", ++ TBS5920_INDEX), ++ TBSUSB_DEVICE_PROPERTIES(tbsusb_state, "dvb-usb-tbsqbox-id5928.fw", ++ 150, NULL, "TBS QBOXS2 DVBS2 USB2.0 (TBS5928)", ++ TBS5928_INDEX), ++ TBSUSB_DEVICE_PROPERTIES(tbsusb_state, "dvb-usb-tbsqbox-id5910.fw", ++ 150, tbsusb_tuner_attach, "TBS QBOX DVBS USB2.0 (TBS5910)", ++ TBS5910_INDEX), ++ TBSUSB_DEVICE_PROPERTIES(tbsusb_state, "dvb-usb-tbsqbox-id5921.fw", ++ 150, NULL, "TBS QBOXS3 DVBS2 USB2.0 (TBS5921)", ++ TBS5921_INDEX) ++}; ++ ++static int tbsusb_probe(struct usb_interface *intf, ++ const struct usb_device_id *id) ++{ ++ int i; ++ ++ for (i = 0; i < TBSMAX_INDEX; i++) ++ if (!dvb_usb_device_init(intf, &tbsusb_properties[i], ++ THIS_MODULE, NULL, adapter_nr)) ++ return 0; ++ return -ENODEV; ++} ++ ++static void tbsusb_usb_disconnect(struct usb_interface *dev) ++{ ++ struct dvb_usb_device *d = usb_get_intfdata(dev); ++ ++ if (d && d->desc && d->desc->cold_ids[0]->idProduct == ++ USB_PID_TENOW_TBS5980) ++ tbsusbci_uninit(d); ++ dvb_usb_device_exit(dev); ++} ++ ++static struct usb_driver tbsusb_driver = { ++ .name = "tbsusb", ++ .probe = tbsusb_probe, ++ .disconnect = tbsusb_usb_disconnect, ++ .id_table = tbsusb_table, ++}; ++ ++module_usb_driver(tbsusb_driver); ++ ++MODULE_AUTHOR("Various Authors"); ++MODULE_DESCRIPTION("TBS 5980/5928/5925/5921/5920/5910 USB2.0 DVB-S/S2 driver"); ++MODULE_VERSION("1.0"); ++MODULE_LICENSE("GPL"); +diff --git a/drivers/media/usb/dvb-usb/tbs-usb.h b/drivers/media/usb/dvb-usb/tbs-usb.h +new file mode 100644 +index 0000000..2a0a112 +--- /dev/null ++++ b/drivers/media/usb/dvb-usb/tbs-usb.h +@@ -0,0 +1,9 @@ ++#ifndef _DVB_USB_TBSUSB_H_ ++#define _DVB_USB_TBSUSB_H_ ++ ++#define DVB_USB_LOG_PREFIX "tbsusb" ++#include "dvb-usb.h" ++ ++#define deb_xfer(args...) dprintk(dvb_usb_tbsusb_debug, 0x02, args) ++#define deb_info(args...) dprintk(dvb_usb_tbsusb_debug, 0x01, args) ++#endif +-- +2.1.4 + diff --git a/archive-patches/armbox/hd51_0001-TBS-fixes-for-4.6-kernel.patch b/archive-patches/armbox/hd51_0001-TBS-fixes-for-4.6-kernel.patch new file mode 100644 index 0000000..d19e387 --- /dev/null +++ b/archive-patches/armbox/hd51_0001-TBS-fixes-for-4.6-kernel.patch @@ -0,0 +1,55 @@ +From 1553b610994b399f4d42772f4a9565a4ce2a1245 Mon Sep 17 00:00:00 2001 +From: Athanasios Oikonomou +Date: Sat, 5 Mar 2016 01:34:21 +0200 +Subject: [PATCH] TBS: fixes for 4.3 kernel + +Change fe_sec_voltage_t to enum fe_sec_voltage. + +Remove TBS5921 because it uses tda10071_config that is unavailable. +Driver should use I2C platform data now in order to load tda10071. +More info: https://patchwork.linuxtv.org/patch/30472/ + +diff --git a/drivers/media/usb/dvb-usb/tbs-usb.c b/drivers/media/usb/dvb-usb/tbs-usb.c +index f142be3..98347c9 100644 +--- a/drivers/media/usb/dvb-usb/tbs-usb.c ++++ b/drivers/media/usb/dvb-usb/tbs-usb.c +@@ -339,7 +339,7 @@ static int tbsusb_set_pin(struct dvb_frontend *fe, u8 *what) + } + + static int tbsusb_set_voltage(struct dvb_frontend *fe, +- fe_sec_voltage_t voltage) ++ enum fe_sec_voltage voltage) + { + static u8 command_13v[2] = {0x03, 0x00}; + static u8 command_18v[2] = {0x03, 0x01}; +@@ -787,17 +787,6 @@ static const struct stv090x_config stv0900_config = { + .set_lock_led = tbsusb_led_ctrl, + }; + +-static const struct tda10071_config tda10071_config = { +- .demod_i2c_addr = 0x55, /* (0xaa >> 1) */ +- .tuner_i2c_addr = 0x14, +- .i2c_wr_max = 64, +- .ts_mode = TDA10071_TS_PARALLEL, +- .spec_inv = 0, +- .xtal = 40444000, /* 40.444 MHz */ +- .pll_multiplier = 20, +- .set_lock_led = tbsusb_led_ctrl, +-}; +- + static const struct cx24116_config cx24116_config = { + .demod_address = 0x55, + .mpg_clk_pos_pol = 0x01, +@@ -840,9 +829,6 @@ static int tbsusb_frontend_attach(struct dvb_usb_adapter *d) + d->fe_adap[0].fe = dvb_attach(stv0288_attach, &stv0288_config, + &d->dev->i2c_adap); + break; +- case USB_PID_TENOW_TBS5921: +- d->fe_adap[0].fe = dvb_attach(tda10071_attach, &tda10071_config, +- &d->dev->i2c_adap); + } + + if (!d->fe_adap[0].fe) +-- +2.1.4 + diff --git a/archive-patches/armbox/hd51_0001-stv090x-optimized-TS-sync-control.patch b/archive-patches/armbox/hd51_0001-stv090x-optimized-TS-sync-control.patch new file mode 100644 index 0000000..1ee3cee --- /dev/null +++ b/archive-patches/armbox/hd51_0001-stv090x-optimized-TS-sync-control.patch @@ -0,0 +1,92 @@ +From 8cc2e0072bc2dfc9a64b569e2b7bb804bf82bc55 Mon Sep 17 00:00:00 2001 +From: Athanasios Oikonomou +Date: Thu, 17 Mar 2016 06:53:34 +0200 +Subject: [PATCH] stv090x: optimized TS sync control + +Based on crazycat commits: +stv090x: Minimum latence TS FIFO mode for DVB-S2. +https://github.com/Taapat/driver/commit/b831c1a22b96ece05d0af1cc1e55d5e34d2ca13b +stv090x: optimized TS sync control. +https://github.com/Taapat/driver/commit/f2cacf05651efe48bb5abb02df94646a0d712362 + +diff --git a/drivers/media/dvb-frontends/stv090x.c b/drivers/media/dvb-frontends/stv090x.c +index 12fd3d0..396e0ab 100644 +--- a/drivers/media/dvb-frontends/stv090x.c ++++ b/drivers/media/dvb-frontends/stv090x.c +@@ -3017,6 +3017,28 @@ static int stv090x_optimize_track(struct stv090x_state *state) + srate = stv090x_get_srate(state, state->internal->mclk); + srate += stv090x_get_tmgoffst(state, srate); + ++ if (state->delsys == STV090x_DVBS2 && srate > 10000000) { ++ reg = stv090x_read_reg(state, STV090x_P1_TSSTATEM); ++ STV090x_SETFIELD_Px(reg, TSOUT_NOSYNC, 1); ++ if (stv090x_write_reg(state, STV090x_P1_TSSTATEM, reg) < 0) ++ goto err; ++ ++ reg = stv090x_read_reg(state, STV090x_P1_TSSYNC); ++ STV090x_SETFIELD_Px(reg, TSFIFO_SYNCMODE, 2); ++ if (stv090x_write_reg(state, STV090x_P1_TSSYNC, reg) < 0) ++ goto err; ++ } else { ++ reg = stv090x_read_reg(state, STV090x_P1_TSSTATEM); ++ STV090x_SETFIELD_Px(reg, TSOUT_NOSYNC, 0); ++ if (stv090x_write_reg(state, STV090x_P1_TSSTATEM, reg) < 0) ++ goto err; ++ ++ reg = stv090x_read_reg(state, STV090x_P1_TSSYNC); ++ STV090x_SETFIELD_Px(reg, TSFIFO_SYNCMODE, 0); ++ if (stv090x_write_reg(state, STV090x_P1_TSSYNC, reg) < 0) ++ goto err; ++ } ++ + switch (state->delsys) { + case STV090x_DVBS1: + case STV090x_DSS: +@@ -4517,10 +4539,6 @@ static int stv0900_set_tspath(struct stv090x_state *state) + case STV090x_TSMODE_DVBCI: + if (stv090x_write_reg(state, STV090x_TSGENERAL, 0x06) < 0) /* Mux'd stream mode */ + goto err; +- reg = stv090x_read_reg(state, STV090x_P1_TSCFGM); +- STV090x_SETFIELD_Px(reg, TSFIFO_MANSPEED_FIELD, 3); +- if (stv090x_write_reg(state, STV090x_P1_TSCFGM, reg) < 0) +- goto err; + reg = stv090x_read_reg(state, STV090x_P2_TSCFGM); + STV090x_SETFIELD_Px(reg, TSFIFO_MANSPEED_FIELD, 3); + if (stv090x_write_reg(state, STV090x_P2_TSCFGM, reg) < 0) +diff --git a/drivers/media/dvb-frontends/stv090x_reg.h b/drivers/media/dvb-frontends/stv090x_reg.h +index 93741ee..c1dac9c 100644 +--- a/drivers/media/dvb-frontends/stv090x_reg.h ++++ b/drivers/media/dvb-frontends/stv090x_reg.h +@@ -2106,6 +2106,14 @@ + #define STV090x_WIDTH_Px_TSDIL_ON_FIELD 1 + #define STV090x_OFFST_Px_TSRS_ON_FIELD 5 + #define STV090x_WIDTH_Px_TSRS_ON_FIELD 1 ++#define STV090x_OFFST_Px_TSDESCRAMB_ON 4 ++#define STV090x_WIDTH_Px_TSDESCRAMB_ON 1 ++#define STV090x_OFFST_Px_TSFRAME_MODE 3 ++#define STV090x_WIDTH_Px_TSFRAME_MODE 1 ++#define STV090x_OFFST_Px_TS_DISABLE 2 ++#define STV090x_WIDTH_Px_TS_DISABLE 1 ++#define STV090x_OFFST_Px_TSOUT_NOSYNC 0 ++#define STV090x_WIDTH_Px_TSOUT_NOSYNC 1 + + #define STV090x_Px_TSCFGH(__x) (0xF572 - (__x - 1) * 0x200) + #define STV090x_P1_TSCFGH STV090x_Px_TSCFGH(1) +@@ -2149,6 +2157,14 @@ + #define STV090x_OFFST_Px_TSFIFO_DPUNACT_FIELD 1 + #define STV090x_WIDTH_Px_TSFIFO_DPUNACT_FIELD 1 + ++#define STV090x_Px_TSSYNC(__x) (0xF575 - (__x - 1) * 0x200) ++#define STV090x_P1_TSSYNC STV090x_Px_TSSYNC(1) ++#define STV090x_P2_TSSYNC STV090x_Px_TSSYNC(2) ++#define STV090x_OFFST_Px_TSFIFO_FISCR3B 5 ++#define STV090x_WIDTH_Px_TSFIFO_FISCR3B 2 ++#define STV090x_OFFST_Px_TSFIFO_SYNCMODE 3 ++#define STV090x_WIDTH_Px_TSFIFO_SYNCMODE 2 ++ + #define STV090x_Px_TSINSDELH(__x) (0xF576 - (__x - 1) * 0x200) + #define STV090x_P1_TSINSDELH STV090x_Px_TSINSDELH(1) + #define STV090x_P2_TSINSDELH STV090x_Px_TSINSDELH(2) +-- +2.1.4 + diff --git a/archive-patches/armbox/hd51_TBS-fixes-for-4.10-kernel.patch b/archive-patches/armbox/hd51_TBS-fixes-for-4.10-kernel.patch new file mode 100644 index 0000000..d96d50a --- /dev/null +++ b/archive-patches/armbox/hd51_TBS-fixes-for-4.10-kernel.patch @@ -0,0 +1,46 @@ +diff --git a/drivers/media/dvb-core/dvb-usb-ids.h b/drivers/media/dvb-core/dvb-usb-ids.h +index 779f4224b63e..ae6005436639 100644 +--- a/drivers/media/dvb-core/dvb-usb-ids.h ++++ b/drivers/media/dvb-core/dvb-usb-ids.h +@@ -411,6 +411,6 @@ + #define USB_PID_PCTV_2002E_SE 0x025d + #define USB_PID_SVEON_STV27 0xd3af + #define USB_PID_TURBOX_DTT_2000 0xd3a4 +-#define USB_PID_WINTV_SOLOHD 0x0264 + #define USB_PID_EVOLVEO_XTRATV_STICK 0xa115 ++#define USB_PID_WINTV_SOLOHD 0x0264 + #endif +diff --git a/drivers/media/dvb-frontends/stv090x.c b/drivers/media/dvb-frontends/stv090x.c +index 7ef469c0c866..b586d2a49737 100644 +--- a/drivers/media/dvb-frontends/stv090x.c ++++ b/drivers/media/dvb-frontends/stv090x.c +@@ -3692,12 +3692,9 @@ static int stv090x_read_cnr(struct dvb_frontend *fe, u16 *cnr) + } + val /= 16; + last = ARRAY_SIZE(stv090x_s2cn_tab) - 1; +- div = stv090x_s2cn_tab[last].real - +- stv090x_s2cn_tab[3].real; +- val = stv090x_table_lookup(stv090x_s2cn_tab, last, val); +- if (val < 0) +- val = 0; +- *cnr = val * 0xFFFF / div; ++ div = stv090x_s2cn_tab[0].read - ++ stv090x_s2cn_tab[last].read; ++ *cnr = 0xFFFF - ((val * 0xFFFF) / div); + } + break; + +@@ -3717,10 +3714,9 @@ static int stv090x_read_cnr(struct dvb_frontend *fe, u16 *cnr) + } + val /= 16; + last = ARRAY_SIZE(stv090x_s1cn_tab) - 1; +- div = stv090x_s1cn_tab[last].real - +- stv090x_s1cn_tab[0].real; +- val = stv090x_table_lookup(stv090x_s1cn_tab, last, val); +- *cnr = val * 0xFFFF / div; ++ div = stv090x_s1cn_tab[0].read - ++ stv090x_s1cn_tab[last].read; ++ *cnr = 0xFFFF - ((val * 0xFFFF) / div); + } + break; + default: diff --git a/archive-patches/armbox/hd51_blacklist_mmc0.patch b/archive-patches/armbox/hd51_blacklist_mmc0.patch new file mode 100644 index 0000000..5d1027a --- /dev/null +++ b/archive-patches/armbox/hd51_blacklist_mmc0.patch @@ -0,0 +1,15 @@ +diff --git a/drivers/mmc/host/sdhci-brcmstb.c b/drivers/mmc/host/sdhci-brcmstb.c +index 942b42b..b678310 100644 +--- a/drivers/mmc/host/sdhci-brcmstb.c ++++ b/drivers/mmc/host/sdhci-brcmstb.c +@@ -71,6 +71,10 @@ static int sdhci_brcmstb_probe(struct platform_device *pdev) + struct clk *clk; + int res; + ++ if (platform_get_resource(pdev, IORESOURCE_MEM, 0) && (unsigned int)platform_get_resource(pdev, IORESOURCE_MEM, 0)->start == 0xf03e0000) { ++ return -ENODEV; ++ } ++ + clk = devm_clk_get(&pdev->dev, NULL); + if (IS_ERR(clk)) { + dev_err(&pdev->dev, "Clock not found in Device Tree\n"); diff --git a/archive-patches/armbox/hd51_blindscan2.patch b/archive-patches/armbox/hd51_blindscan2.patch new file mode 100644 index 0000000..c0c98f0 --- /dev/null +++ b/archive-patches/armbox/hd51_blindscan2.patch @@ -0,0 +1,261 @@ +diff --git a/drivers/media/dvb-frontends/stv090x.c b/drivers/media/dvb-frontends/stv090x.c +index ce99b9d..0b59a1f 100644 +--- a/drivers/media/dvb-frontends/stv090x.c ++++ b/drivers/media/dvb-frontends/stv090x.c +@@ -1694,6 +1694,7 @@ static u32 stv090x_get_srate(struct stv090x_state *state, u32 clk) + ((int_1 * tmp_2) >> 16) + + ((int_2 * tmp_1) >> 16); + ++ state->srate = srate; + return srate; + } + +@@ -2606,6 +2607,94 @@ static int stv090x_get_viterbi(struct stv090x_state *state) + static enum stv090x_signal_state stv090x_get_sig_params(struct stv090x_state *state) + { + struct dvb_frontend *fe = &state->frontend; ++ struct dtv_frontend_properties *props = &fe->dtv_property_cache; ++ ++ int fe_stv0900_tracking_standard_return[] = { ++ SYS_UNDEFINED, ++ SYS_DVBS, ++ SYS_DVBS2, ++ SYS_DSS ++ }; ++ ++ int fe_stv0900_rolloff_return[] = { ++ ROLLOFF_35, ++ ROLLOFF_25, ++ ROLLOFF_20, ++ ROLLOFF_AUTO ++ }; ++ ++ int fe_stv0900_modulation_return[] = { ++ QPSK, ++ PSK_8, ++ APSK_16, ++ APSK_32 ++ }; ++ ++ int fe_stv0900_modcod_return_dvbs[] = { ++ FEC_NONE, ++ FEC_AUTO, ++ FEC_AUTO, ++ FEC_AUTO, ++ FEC_1_2, ++ FEC_3_5, ++ FEC_2_3, ++ FEC_3_4, ++ FEC_4_5, ++ FEC_5_6, ++ FEC_6_7, ++ FEC_7_8, ++ FEC_3_5, ++ FEC_2_3, ++ FEC_3_4, ++ FEC_5_6, ++ FEC_8_9, ++ FEC_9_10, ++ FEC_2_3, ++ FEC_3_4, ++ FEC_4_5, ++ FEC_5_6, ++ FEC_8_9, ++ FEC_9_10, ++ FEC_3_4, ++ FEC_4_5, ++ FEC_5_6, ++ FEC_8_9, ++ FEC_9_10, ++ FEC_AUTO ++ }; ++ ++ int fe_stv0900_modcod_return_dvbs2[] = { ++ FEC_NONE, ++ FEC_AUTO, ++ FEC_AUTO, ++ FEC_AUTO, ++ FEC_1_2, ++ FEC_3_5, ++ FEC_2_3, ++ FEC_3_4, ++ FEC_4_5, ++ FEC_5_6, ++ FEC_8_9, ++ FEC_9_10, ++ FEC_3_5, ++ FEC_2_3, ++ FEC_3_4, ++ FEC_5_6, ++ FEC_8_9, ++ FEC_9_10, ++ FEC_2_3, ++ FEC_3_4, ++ FEC_4_5, ++ FEC_5_6, ++ FEC_8_9, ++ FEC_9_10, ++ FEC_3_4, ++ FEC_4_5, ++ FEC_5_6, ++ FEC_8_9, ++ FEC_9_10, ++ FEC_AUTO ++ }; + + u8 tmg; + u32 reg; +@@ -2645,10 +2734,71 @@ static enum stv090x_signal_state stv090x_get_sig_params(struct stv090x_state *st + state->modcod = STV090x_GETFIELD_Px(reg, DEMOD_MODCOD_FIELD); + state->pilots = STV090x_GETFIELD_Px(reg, DEMOD_TYPE_FIELD) & 0x01; + state->frame_len = STV090x_GETFIELD_Px(reg, DEMOD_TYPE_FIELD) >> 1; +- reg = STV090x_READ_DEMOD(state, TMGOBS); +- state->rolloff = STV090x_GETFIELD_Px(reg, ROLLOFF_STATUS_FIELD); +- reg = STV090x_READ_DEMOD(state, FECM); +- state->inversion = STV090x_GETFIELD_Px(reg, IQINV_FIELD); ++ reg = STV090x_READ_DEMOD(state, MATSTR1); ++ state->rolloff = STV090x_GETFIELD_Px(reg, MATYPE_ROLLOFF_FIELD); ++ ++ switch (state->delsys) { ++ case STV090x_DVBS2: ++ if (state->modcod <= STV090x_QPSK_910) ++ state->modulation = STV090x_QPSK; ++ else if (state->modcod <= STV090x_8PSK_910) ++ state->modulation = STV090x_8PSK; ++ else if (state->modcod <= STV090x_16APSK_910) ++ state->modulation = STV090x_16APSK; ++ else if (state->modcod <= STV090x_32APSK_910) ++ state->modulation = STV090x_32APSK; ++ else ++ state->modulation = STV090x_UNKNOWN; ++ reg = STV090x_READ_DEMOD(state, PLHMODCOD); ++ state->inversion = STV090x_GETFIELD_Px(reg, SPECINV_DEMOD_FIELD); ++ break; ++ case STV090x_DVBS1: ++ case STV090x_DSS: ++ switch(state->fec) { ++ case STV090x_PR12: ++ state->modcod = STV090x_QPSK_12; ++ break; ++ case STV090x_PR23: ++ state->modcod = STV090x_QPSK_23; ++ break; ++ case STV090x_PR34: ++ state->modcod = STV090x_QPSK_34; ++ break; ++ case STV090x_PR45: ++ state->modcod = STV090x_QPSK_45; ++ break; ++ case STV090x_PR56: ++ state->modcod = STV090x_QPSK_56; ++ break; ++ case STV090x_PR67: ++ state->modcod = STV090x_QPSK_89; ++ break; ++ case STV090x_PR78: ++ state->modcod = STV090x_QPSK_910; ++ break; ++ default: ++ state->modcod = STV090x_DUMMY_PLF; ++ break; ++ } ++ state->modulation = STV090x_QPSK; ++ reg = STV090x_READ_DEMOD(state, FECM); ++ state->inversion = STV090x_GETFIELD_Px(reg, IQINV_FIELD); ++ break; ++ default: ++ break; ++ } ++ ++ props->frequency = state->frequency; ++ props->symbol_rate = state->srate; ++ if (state->delsys == 2) ++ props->fec_inner = fe_stv0900_modcod_return_dvbs2[state->modcod]; ++ else ++ props->fec_inner = fe_stv0900_modcod_return_dvbs[state->modcod]; ++ props->pilot = state->pilots; ++ props->rolloff = fe_stv0900_rolloff_return[state->rolloff]; ++ props->modulation = fe_stv0900_modulation_return[state->modulation]; ++ props->inversion = state->inversion; ++ props->delivery_system = fe_stv0900_tracking_standard_return[state->delsys]; + + if ((state->algo == STV090x_BLIND_SEARCH) || (state->srate < 10000000)) { + +@@ -2858,6 +3008,7 @@ static int stv090x_optimize_track(struct stv090x_state *state) + { + struct dvb_frontend *fe = &state->frontend; + ++ enum stv090x_rolloff rolloff; + enum stv090x_modcod modcod; + + s32 srate, pilots, aclc, f_1, f_0, i = 0, blind_tune = 0; +@@ -2981,6 +3132,7 @@ static int stv090x_optimize_track(struct stv090x_state *state) + f_1 = STV090x_READ_DEMOD(state, CFR2); + f_0 = STV090x_READ_DEMOD(state, CFR1); + reg = STV090x_READ_DEMOD(state, TMGOBS); ++ rolloff = STV090x_GETFIELD_Px(reg, ROLLOFF_STATUS_FIELD); + + if (state->algo == STV090x_BLIND_SEARCH) { + STV090x_WRITE_DEMOD(state, SFRSTEP, 0x00); +@@ -3515,20 +3667,24 @@ static enum dvbfe_search stv090x_search(struct dvb_frontend *fe) + state->frequency = props->frequency; + state->srate = props->symbol_rate; + state->search_mode = STV090x_SEARCH_AUTO; +- state->algo = STV090x_COLD_SEARCH; ++ state->algo = STV090x_BLIND_SEARCH; + state->fec = STV090x_PRERR; +- if (state->srate > 10000000) { +- dprintk(FE_DEBUG, 1, "Search range: 10 MHz"); +- state->search_range = 10000000; +- } else { +- dprintk(FE_DEBUG, 1, "Search range: 5 MHz"); +- state->search_range = 5000000; +- } ++ state->search_range = 0; + + stv090x_set_mis(state, props->stream_id); + ++ dprintk(FE_DEBUG, 1, "Search started..."); + if (stv090x_algo(state) == STV090x_RANGEOK) { ++ stv090x_get_sig_params(state); + dprintk(FE_DEBUG, 1, "Search success!"); ++ dprintk(FE_DEBUG, 1, "frequency = %d", props->frequency); ++ dprintk(FE_DEBUG, 1, "symbol_rate = %d", props->symbol_rate); ++ dprintk(FE_DEBUG, 1, "fec_inner = %d, %d", props->fec_inner, state->modcod); ++ dprintk(FE_DEBUG, 1, "pilot = %d", props->pilot); ++ dprintk(FE_DEBUG, 1, "rolloff = %d", props->rolloff); ++ dprintk(FE_DEBUG, 1, "modulation = %d, %d", props->modulation, state->modulation); ++ dprintk(FE_DEBUG, 1, "inversion = %d", props->inversion); ++ dprintk(FE_DEBUG, 1, "delivery_system = %d, %d", props->delivery_system, state->delsys); + return DVBFE_ALGO_SEARCH_SUCCESS; + } else { + dprintk(FE_DEBUG, 1, "Search failed!"); +@@ -3571,6 +3727,7 @@ static int stv090x_read_status(struct dvb_frontend *fe, enum fe_status *status) + *status |= FE_HAS_SYNC | FE_HAS_LOCK; + } + } ++ stv090x_get_sig_params(state); + break; + + case 3: /* DVB-S1/legacy mode */ +@@ -3584,6 +3742,7 @@ static int stv090x_read_status(struct dvb_frontend *fe, enum fe_status *status) + *status |= FE_HAS_SYNC | FE_HAS_LOCK; + } + } ++ stv090x_get_sig_params(state); + break; + } + +diff --git a/drivers/media/dvb-frontends/stv090x_reg.h b/drivers/media/dvb-frontends/stv090x_reg.h +index 93741ee..ac6bc30 100644 +--- a/drivers/media/dvb-frontends/stv090x_reg.h ++++ b/drivers/media/dvb-frontends/stv090x_reg.h +@@ -1927,6 +1927,8 @@ + #define STV090x_P1_MATSTR1 STV090x_Px_MATSTRy(1, 1) + #define STV090x_P2_MATSTR0 STV090x_Px_MATSTRy(2, 0) + #define STV090x_P2_MATSTR1 STV090x_Px_MATSTRy(2, 1) ++#define STV090x_OFFST_Px_MATYPE_ROLLOFF_FIELD 0 ++#define STV090x_WIDTH_Px_MATYPE_ROLLOFF_FIELD 2 + #define STV090x_OFFST_Px_MATYPE_CURRENT_FIELD 0 + #define STV090x_WIDTH_Px_MATYPE_CURRENT_FIELD 8 + diff --git a/archive-patches/armbox/hd51_defconfig b/archive-patches/armbox/hd51_defconfig new file mode 100644 index 0000000..00556c5 --- /dev/null +++ b/archive-patches/armbox/hd51_defconfig @@ -0,0 +1,4423 @@ +# +# Automatically generated file; DO NOT EDIT. +# Linux/arm 4.10.12 Kernel Configuration +# +CONFIG_ARM=y +CONFIG_ARM_HAS_SG_CHAIN=y +CONFIG_MIGHT_HAVE_PCI=y +CONFIG_SYS_SUPPORTS_APM_EMULATION=y +CONFIG_HAVE_PROC_CPU=y +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_LOCKDEP_SUPPORT=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_RWSEM_XCHGADD_ALGORITHM=y +CONFIG_FIX_EARLYCON_MEM=y +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_ARCH_SUPPORTS_UPROBES=y +CONFIG_VECTORS_BASE=0xffff0000 +CONFIG_ARM_PATCH_PHYS_VIRT=y +CONFIG_GENERIC_BUG=y +CONFIG_PGTABLE_LEVELS=3 +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" +CONFIG_IRQ_WORK=y +CONFIG_BUILDTIME_EXTABLE_SORT=y + +# +# General setup +# +CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_CROSS_COMPILE="arm-linux-gnueabihf-" +# CONFIG_COMPILE_TEST is not set +CONFIG_LOCALVERSION="" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_HAVE_KERNEL_GZIP=y +CONFIG_HAVE_KERNEL_LZMA=y +CONFIG_HAVE_KERNEL_XZ=y +CONFIG_HAVE_KERNEL_LZO=y +CONFIG_HAVE_KERNEL_LZ4=y +CONFIG_KERNEL_GZIP=y +# CONFIG_KERNEL_LZMA is not set +# CONFIG_KERNEL_XZ is not set +# CONFIG_KERNEL_LZO is not set +# CONFIG_KERNEL_LZ4 is not set +CONFIG_DEFAULT_HOSTNAME="(none)" +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_SYSCTL=y +CONFIG_POSIX_MQUEUE=y +CONFIG_POSIX_MQUEUE_SYSCTL=y +CONFIG_CROSS_MEMORY_ATTACH=y +CONFIG_FHANDLE=y +CONFIG_USELIB=y +# CONFIG_AUDIT is not set +CONFIG_HAVE_ARCH_AUDITSYSCALL=y + +# +# IRQ subsystem +# +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_IRQ_SHOW_LEVEL=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_GENERIC_IRQ_CHIP=y +CONFIG_IRQ_DOMAIN=y +CONFIG_IRQ_DOMAIN_HIERARCHY=y +CONFIG_GENERIC_MSI_IRQ=y +CONFIG_GENERIC_MSI_IRQ_DOMAIN=y +CONFIG_HANDLE_DOMAIN_IRQ=y +# CONFIG_IRQ_DOMAIN_DEBUG is not set +CONFIG_IRQ_FORCED_THREADING=y +CONFIG_SPARSE_IRQ=y +CONFIG_ARCH_CLOCKSOURCE_DATA=y +CONFIG_GENERIC_TIME_VSYSCALL=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_ARCH_HAS_TICK_BROADCAST=y +CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y + +# +# Timers subsystem +# +CONFIG_TICK_ONESHOT=y +CONFIG_NO_HZ_COMMON=y +# CONFIG_HZ_PERIODIC is not set +CONFIG_NO_HZ_IDLE=y +# CONFIG_NO_HZ_FULL is not set +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y + +# +# CPU/Task time and stats accounting +# +CONFIG_TICK_CPU_ACCOUNTING=y +# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set +CONFIG_IRQ_TIME_ACCOUNTING=y +# CONFIG_BSD_PROCESS_ACCT is not set +# CONFIG_TASKSTATS is not set + +# +# RCU Subsystem +# +CONFIG_TREE_RCU=y +# CONFIG_RCU_EXPERT is not set +CONFIG_SRCU=y +# CONFIG_TASKS_RCU is not set +CONFIG_RCU_STALL_COMMON=y +# CONFIG_TREE_RCU_TRACE is not set +# CONFIG_RCU_EXPEDITE_BOOT is not set +# CONFIG_BUILD_BIN2C is not set +# CONFIG_IKCONFIG is not set +CONFIG_LOG_BUF_SHIFT=16 +CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 +CONFIG_NMI_LOG_BUF_SHIFT=13 +CONFIG_GENERIC_SCHED_CLOCK=y +CONFIG_CGROUPS=y +CONFIG_PAGE_COUNTER=y +CONFIG_MEMCG=y +# CONFIG_MEMCG_SWAP is not set +# CONFIG_BLK_CGROUP is not set +# CONFIG_CGROUP_SCHED is not set +# CONFIG_CGROUP_PIDS is not set +# CONFIG_CGROUP_FREEZER is not set +CONFIG_CPUSETS=y +CONFIG_PROC_PID_CPUSET=y +# CONFIG_CGROUP_DEVICE is not set +# CONFIG_CGROUP_CPUACCT is not set +# CONFIG_CGROUP_PERF is not set +# CONFIG_CGROUP_DEBUG is not set +# CONFIG_SOCK_CGROUP_DATA is not set +# CONFIG_CHECKPOINT_RESTORE is not set +# CONFIG_NAMESPACES is not set +# CONFIG_SCHED_AUTOGROUP is not set +# CONFIG_SYSFS_DEPRECATED is not set +CONFIG_RELAY=y +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" +CONFIG_RD_GZIP=y +# CONFIG_RD_BZIP2 is not set +# CONFIG_RD_LZMA is not set +# CONFIG_RD_XZ is not set +# CONFIG_RD_LZO is not set +# CONFIG_RD_LZ4 is not set +CONFIG_INITRAMFS_COMPRESSION=".gz" +CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_SYSCTL=y +CONFIG_ANON_INODES=y +CONFIG_HAVE_UID16=y +CONFIG_BPF=y +CONFIG_EXPERT=y +CONFIG_UID16=y +CONFIG_MULTIUSER=y +# CONFIG_SGETMASK_SYSCALL is not set +CONFIG_SYSFS_SYSCALL=y +# CONFIG_SYSCTL_SYSCALL is not set +CONFIG_POSIX_TIMERS=y +CONFIG_KALLSYMS=y +# CONFIG_KALLSYMS_ALL is not set +# CONFIG_KALLSYMS_ABSOLUTE_PERCPU is not set +CONFIG_KALLSYMS_BASE_RELATIVE=y +CONFIG_PRINTK=y +CONFIG_PRINTK_NMI=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_EPOLL=y +CONFIG_SIGNALFD=y +CONFIG_TIMERFD=y +CONFIG_EVENTFD=y +# CONFIG_BPF_SYSCALL is not set +CONFIG_SHMEM=y +CONFIG_AIO=y +CONFIG_ADVISE_SYSCALLS=y +# CONFIG_USERFAULTFD is not set +CONFIG_PCI_QUIRKS=y +CONFIG_MEMBARRIER=y +CONFIG_EMBEDDED=y +CONFIG_HAVE_PERF_EVENTS=y +CONFIG_PERF_USE_VMALLOC=y + +# +# Kernel Performance Events And Counters +# +CONFIG_PERF_EVENTS=y +# CONFIG_DEBUG_PERF_USE_VMALLOC is not set +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_COMPAT_BRK=y +CONFIG_SLAB=y +# CONFIG_SLUB is not set +# CONFIG_SLOB is not set +# CONFIG_SLAB_FREELIST_RANDOM is not set +# CONFIG_SYSTEM_DATA_VERIFICATION is not set +# CONFIG_PROFILING is not set +CONFIG_KEXEC_CORE=y +CONFIG_HAVE_OPROFILE=y +# CONFIG_KPROBES is not set +# CONFIG_JUMP_LABEL is not set +# CONFIG_UPROBES is not set +# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set +CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y +CONFIG_ARCH_USE_BUILTIN_BSWAP=y +CONFIG_HAVE_KPROBES=y +CONFIG_HAVE_KRETPROBES=y +CONFIG_HAVE_OPTPROBES=y +CONFIG_HAVE_NMI=y +CONFIG_HAVE_ARCH_TRACEHOOK=y +CONFIG_HAVE_DMA_CONTIGUOUS=y +CONFIG_GENERIC_SMP_IDLE_THREAD=y +CONFIG_GENERIC_IDLE_POLL_SETUP=y +CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y +CONFIG_HAVE_CLK=y +CONFIG_HAVE_DMA_API_DEBUG=y +CONFIG_HAVE_HW_BREAKPOINT=y +CONFIG_HAVE_PERF_REGS=y +CONFIG_HAVE_PERF_USER_STACK_DUMP=y +CONFIG_HAVE_ARCH_JUMP_LABEL=y +CONFIG_HAVE_RCU_TABLE_FREE=y +CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y +CONFIG_HAVE_ARCH_SECCOMP_FILTER=y +CONFIG_HAVE_GCC_PLUGINS=y +# CONFIG_GCC_PLUGINS is not set +CONFIG_HAVE_CC_STACKPROTECTOR=y +# CONFIG_CC_STACKPROTECTOR is not set +CONFIG_CC_STACKPROTECTOR_NONE=y +# CONFIG_CC_STACKPROTECTOR_REGULAR is not set +# CONFIG_CC_STACKPROTECTOR_STRONG is not set +CONFIG_HAVE_CONTEXT_TRACKING=y +CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y +CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y +CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y +CONFIG_HAVE_MOD_ARCH_SPECIFIC=y +CONFIG_MODULES_USE_ELF_REL=y +CONFIG_ARCH_HAS_ELF_RANDOMIZE=y +CONFIG_HAVE_ARCH_MMAP_RND_BITS=y +CONFIG_HAVE_EXIT_THREAD=y +CONFIG_ARCH_MMAP_RND_BITS_MIN=8 +CONFIG_ARCH_MMAP_RND_BITS_MAX=16 +CONFIG_ARCH_MMAP_RND_BITS=8 +# CONFIG_HAVE_ARCH_HASH is not set +# CONFIG_ISA_BUS_API is not set +CONFIG_CLONE_BACKWARDS=y +CONFIG_OLD_SIGSUSPEND3=y +CONFIG_OLD_SIGACTION=y +# CONFIG_CPU_NO_EFFICIENT_FFS is not set +# CONFIG_HAVE_ARCH_VMAP_STACK is not set + +# +# GCOV-based kernel profiling +# +# CONFIG_GCOV_KERNEL is not set +CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y +CONFIG_HAVE_GENERIC_DMA_COHERENT=y +CONFIG_SLABINFO=y +CONFIG_RT_MUTEXES=y +CONFIG_BASE_SMALL=0 +CONFIG_MODULES=y +CONFIG_MODULE_FORCE_LOAD=y +CONFIG_MODULE_UNLOAD=y +# CONFIG_MODULE_FORCE_UNLOAD is not set +CONFIG_MODVERSIONS=y +# CONFIG_MODULE_SRCVERSION_ALL is not set +# CONFIG_MODULE_SIG is not set +# CONFIG_MODULE_COMPRESS is not set +# CONFIG_TRIM_UNUSED_KSYMS is not set +CONFIG_MODULES_TREE_LOOKUP=y +CONFIG_BLOCK=y +CONFIG_LBDAF=y +CONFIG_BLK_DEV_BSG=y +# CONFIG_BLK_DEV_BSGLIB is not set +# CONFIG_BLK_DEV_INTEGRITY is not set +# CONFIG_BLK_DEV_ZONED is not set +# CONFIG_BLK_CMDLINE_PARSER is not set +# CONFIG_BLK_WBT is not set + +# +# Partition Types +# +CONFIG_PARTITION_ADVANCED=y +# CONFIG_ACORN_PARTITION is not set +# CONFIG_AIX_PARTITION is not set +# CONFIG_OSF_PARTITION is not set +# CONFIG_AMIGA_PARTITION is not set +# CONFIG_ATARI_PARTITION is not set +# CONFIG_MAC_PARTITION is not set +CONFIG_MSDOS_PARTITION=y +# CONFIG_BSD_DISKLABEL is not set +# CONFIG_MINIX_SUBPARTITION is not set +# CONFIG_SOLARIS_X86_PARTITION is not set +# CONFIG_UNIXWARE_DISKLABEL is not set +# CONFIG_LDM_PARTITION is not set +# CONFIG_SGI_PARTITION is not set +# CONFIG_ULTRIX_PARTITION is not set +# CONFIG_SUN_PARTITION is not set +# CONFIG_KARMA_PARTITION is not set +CONFIG_EFI_PARTITION=y +# CONFIG_SYSV68_PARTITION is not set +# CONFIG_CMDLINE_PARTITION is not set +CONFIG_BLK_MQ_PCI=y + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="cfq" +CONFIG_INLINE_SPIN_UNLOCK_IRQ=y +CONFIG_INLINE_READ_UNLOCK=y +CONFIG_INLINE_READ_UNLOCK_IRQ=y +CONFIG_INLINE_WRITE_UNLOCK=y +CONFIG_INLINE_WRITE_UNLOCK_IRQ=y +CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y +CONFIG_MUTEX_SPIN_ON_OWNER=y +CONFIG_RWSEM_SPIN_ON_OWNER=y +CONFIG_LOCK_SPIN_ON_OWNER=y +CONFIG_FREEZER=y + +# +# System Type +# +CONFIG_MMU=y +CONFIG_ARCH_MULTIPLATFORM=y +# CONFIG_ARCH_GEMINI is not set +# CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_EP93XX is not set +# CONFIG_ARCH_FOOTBRIDGE is not set +# CONFIG_ARCH_NETX is not set +# CONFIG_ARCH_IOP13XX is not set +# CONFIG_ARCH_IOP32X is not set +# CONFIG_ARCH_IOP33X is not set +# CONFIG_ARCH_IXP4XX is not set +# CONFIG_ARCH_DOVE is not set +# CONFIG_ARCH_KS8695 is not set +# CONFIG_ARCH_W90X900 is not set +# CONFIG_ARCH_LPC32XX is not set +# CONFIG_ARCH_PXA is not set +# CONFIG_ARCH_RPC is not set +# CONFIG_ARCH_SA1100 is not set +# CONFIG_ARCH_S3C24XX is not set +# CONFIG_ARCH_DAVINCI is not set +# CONFIG_ARCH_OMAP1 is not set + +# +# Multiple platform selection +# + +# +# CPU Core family selection +# +# CONFIG_ARCH_MULTI_V6 is not set +CONFIG_ARCH_MULTI_V7=y +CONFIG_ARCH_MULTI_V6_V7=y +# CONFIG_ARCH_MULTI_CPU_AUTO is not set +# CONFIG_ARCH_VIRT is not set +# CONFIG_ARCH_MVEBU is not set +# CONFIG_ARCH_ALPINE is not set +# CONFIG_ARCH_ARTPEC is not set +# CONFIG_ARCH_AT91 is not set +# CONFIG_ARCH_AXXIA is not set +CONFIG_ARCH_BCM=y + +# +# IPROC architected SoCs +# +# CONFIG_ARCH_BCM_CYGNUS is not set +# CONFIG_ARCH_BCM_NSP is not set +# CONFIG_ARCH_BCM_5301X is not set + +# +# KONA architected SoCs +# +# CONFIG_ARCH_BCM_281XX is not set +# CONFIG_ARCH_BCM_21664 is not set +# CONFIG_ARCH_BCM_23550 is not set + +# +# Other Architectures +# +# CONFIG_ARCH_BCM2835 is not set +# CONFIG_ARCH_BCM_53573 is not set +# CONFIG_ARCH_BCM_63XX is not set +CONFIG_ARCH_BRCMSTB=y +# CONFIG_BCM3390A0 is not set +# CONFIG_BCM3390B0 is not set +# CONFIG_BCM7145B0 is not set +# CONFIG_BCM7250B0 is not set +# CONFIG_BCM7364A0 is not set +# CONFIG_BCM7366C0 is not set +# CONFIG_BCM74371A0 is not set +CONFIG_BCM7439B0=y +# CONFIG_BCM7445D0 is not set +CONFIG_BRCM_USB=y +CONFIG_BRCM_USB_OHCI=y +CONFIG_BRCM_USB_EHCI=y +# CONFIG_ARCH_BERLIN is not set +# CONFIG_ARCH_DIGICOLOR is not set +# CONFIG_ARCH_HIGHBANK is not set +# CONFIG_ARCH_HISI is not set +# CONFIG_ARCH_KEYSTONE is not set +# CONFIG_ARCH_MESON is not set +# CONFIG_ARCH_MXC is not set +# CONFIG_ARCH_MEDIATEK is not set + +# +# TI OMAP/AM/DM/DRA Family +# +# CONFIG_ARCH_OMAP3 is not set +# CONFIG_ARCH_OMAP4 is not set +# CONFIG_SOC_OMAP5 is not set +# CONFIG_SOC_AM33XX is not set +# CONFIG_SOC_AM43XX is not set +# CONFIG_SOC_DRA7XX is not set +# CONFIG_ARCH_MMP is not set +# CONFIG_ARCH_QCOM is not set +# CONFIG_ARCH_REALVIEW is not set +# CONFIG_ARCH_ROCKCHIP is not set +# CONFIG_ARCH_SOCFPGA is not set +# CONFIG_PLAT_SPEAR is not set +# CONFIG_ARCH_STI is not set +# CONFIG_ARCH_S5PV210 is not set +# CONFIG_ARCH_EXYNOS is not set +# CONFIG_ARCH_RENESAS is not set +# CONFIG_ARCH_SUNXI is not set +# CONFIG_ARCH_SIRF is not set +# CONFIG_ARCH_TANGO is not set +# CONFIG_ARCH_TEGRA is not set +# CONFIG_ARCH_UNIPHIER is not set +# CONFIG_ARCH_U8500 is not set +# CONFIG_ARCH_VEXPRESS is not set +# CONFIG_ARCH_WM8850 is not set +# CONFIG_ARCH_ZX is not set +# CONFIG_ARCH_ZYNQ is not set + +# +# Processor Type +# +CONFIG_CPU_V7=y +CONFIG_CPU_32v6K=y +CONFIG_CPU_32v7=y +CONFIG_CPU_ABRT_EV7=y +CONFIG_CPU_PABRT_V7=y +CONFIG_CPU_CACHE_V7=y +CONFIG_CPU_CACHE_VIPT=y +CONFIG_CPU_COPY_V6=y +CONFIG_CPU_TLB_V7=y +CONFIG_CPU_HAS_ASID=y +CONFIG_CPU_CP15=y +CONFIG_CPU_CP15_MMU=y + +# +# Processor Features +# +CONFIG_ARM_LPAE=y +CONFIG_ARCH_PHYS_ADDR_T_64BIT=y +CONFIG_ARCH_DMA_ADDR_T_64BIT=y +CONFIG_ARM_THUMB=y +CONFIG_ARM_THUMBEE=y +CONFIG_ARM_VIRT_EXT=y +CONFIG_SWP_EMULATE=y +# CONFIG_CPU_ICACHE_DISABLE is not set +# CONFIG_CPU_BPREDICT_DISABLE is not set +CONFIG_KUSER_HELPERS=y +CONFIG_VDSO=y +CONFIG_MIGHT_HAVE_CACHE_L2X0=y +# CONFIG_CACHE_L2X0 is not set +CONFIG_ARM_L1_CACHE_SHIFT_6=y +CONFIG_ARM_L1_CACHE_SHIFT=6 +CONFIG_ARM_DMA_MEM_BUFFERABLE=y +# CONFIG_DEBUG_RODATA is not set +CONFIG_MULTI_IRQ_HANDLER=y +# CONFIG_ARM_ERRATA_430973 is not set +# CONFIG_ARM_ERRATA_643719 is not set +# CONFIG_ARM_ERRATA_720789 is not set +# CONFIG_ARM_ERRATA_754322 is not set +# CONFIG_ARM_ERRATA_754327 is not set +# CONFIG_ARM_ERRATA_764369 is not set +# CONFIG_ARM_ERRATA_775420 is not set +CONFIG_ARM_ERRATA_798181=y +# CONFIG_ARM_ERRATA_773022 is not set +# CONFIG_ARM_ERRATA_818325_852422 is not set +# CONFIG_ARM_ERRATA_821420 is not set +# CONFIG_ARM_ERRATA_825619 is not set +# CONFIG_ARM_ERRATA_852421 is not set +# CONFIG_ARM_ERRATA_852423 is not set + +# +# Bus support +# +CONFIG_PCI=y +CONFIG_PCI_DOMAINS=y +CONFIG_PCI_DOMAINS_GENERIC=y +CONFIG_PCI_SYSCALL=y +# CONFIG_PCIEPORTBUS is not set +CONFIG_PCI_BUS_ADDR_T_64BIT=y +CONFIG_PCI_MSI=y +CONFIG_PCI_MSI_IRQ_DOMAIN=y +# CONFIG_PCI_DEBUG is not set +# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set +# CONFIG_PCI_STUB is not set +# CONFIG_PCI_IOV is not set +# CONFIG_PCI_PRI is not set +# CONFIG_PCI_PASID is not set +# CONFIG_HOTPLUG_PCI is not set + +# +# PCI host controller drivers +# +# CONFIG_PCIE_DW_PLAT is not set +# CONFIG_PCI_HOST_GENERIC is not set +# CONFIG_PCI_LAYERSCAPE is not set +# CONFIG_PCIE_ALTERA is not set +# CONFIG_PCCARD is not set + +# +# Kernel Features +# +CONFIG_HAVE_SMP=y +CONFIG_SMP=y +CONFIG_SMP_ON_UP=y +CONFIG_ARM_CPU_TOPOLOGY=y +# CONFIG_SCHED_MC is not set +# CONFIG_SCHED_SMT is not set +CONFIG_HAVE_ARM_ARCH_TIMER=y +# CONFIG_MCPM is not set +# CONFIG_BIG_LITTLE is not set +CONFIG_VMSPLIT_3G=y +# CONFIG_VMSPLIT_3G_OPT is not set +# CONFIG_VMSPLIT_2G is not set +# CONFIG_VMSPLIT_1G is not set +CONFIG_PAGE_OFFSET=0xC0000000 +CONFIG_NR_CPUS=4 +CONFIG_HOTPLUG_CPU=y +CONFIG_ARM_PSCI=y +CONFIG_ARCH_NR_GPIO=1024 +CONFIG_PREEMPT_NONE=y +# CONFIG_PREEMPT_VOLUNTARY is not set +# CONFIG_PREEMPT is not set +CONFIG_HZ_FIXED=0 +# CONFIG_HZ_100 is not set +# CONFIG_HZ_200 is not set +# CONFIG_HZ_250 is not set +# CONFIG_HZ_300 is not set +# CONFIG_HZ_500 is not set +CONFIG_HZ_1000=y +CONFIG_HZ=1000 +CONFIG_SCHED_HRTICK=y +# CONFIG_THUMB2_KERNEL is not set +CONFIG_ARM_PATCH_IDIV=y +CONFIG_AEABI=y +# CONFIG_OABI_COMPAT is not set +# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set +# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set +CONFIG_HAVE_ARCH_PFN_VALID=y +CONFIG_HAVE_GENERIC_RCU_GUP=y +CONFIG_HIGHMEM=y +CONFIG_HIGHPTE=y +CONFIG_HW_PERF_EVENTS=y +CONFIG_SYS_SUPPORTS_HUGETLBFS=y +CONFIG_ARCH_WANT_GENERAL_HUGETLB=y +# CONFIG_ARM_MODULE_PLTS is not set +CONFIG_FLATMEM=y +CONFIG_FLAT_NODE_MEM_MAP=y +CONFIG_HAVE_MEMBLOCK=y +CONFIG_NO_BOOTMEM=y +CONFIG_MEMORY_ISOLATION=y +# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set +CONFIG_SPLIT_PTLOCK_CPUS=4 +CONFIG_COMPACTION=y +CONFIG_MIGRATION=y +CONFIG_PHYS_ADDR_T_64BIT=y +CONFIG_BOUNCE=y +# CONFIG_KSM is not set +CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 +# CONFIG_TRANSPARENT_HUGEPAGE is not set +# CONFIG_CLEANCACHE is not set +# CONFIG_FRONTSWAP is not set +CONFIG_CMA=y +# CONFIG_CMA_DEBUG is not set +# CONFIG_CMA_DEBUGFS is not set +CONFIG_CMA_AREAS=3 +# CONFIG_ZPOOL is not set +# CONFIG_ZBUD is not set +# CONFIG_ZSMALLOC is not set +CONFIG_GENERIC_EARLY_IOREMAP=y +# CONFIG_IDLE_PAGE_TRACKING is not set +CONFIG_FRAME_VECTOR=y +CONFIG_FORCE_MAX_ZONEORDER=11 +CONFIG_ALIGNMENT_TRAP=y +# CONFIG_UACCESS_WITH_MEMCPY is not set +# CONFIG_SECCOMP is not set +CONFIG_SWIOTLB=y +CONFIG_IOMMU_HELPER=y +# CONFIG_PARAVIRT is not set +# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set +# CONFIG_XEN is not set + +# +# Boot options +# +CONFIG_USE_OF=y +CONFIG_ATAGS=y +# CONFIG_DEPRECATED_PARAM_STRUCT is not set +CONFIG_ZBOOT_ROM_TEXT=0 +CONFIG_ZBOOT_ROM_BSS=0 +CONFIG_ARM_APPENDED_DTB=y +CONFIG_ARM_ATAG_DTB_COMPAT=y +CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_FROM_BOOTLOADER=y +# CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEND is not set +CONFIG_CMDLINE="brcm_cma=440M@328M brcm_cma=192M@768M console=ttyS0,115200" +# CONFIG_CMDLINE_FROM_BOOTLOADER is not set +CONFIG_CMDLINE_EXTEND=y +# CONFIG_CMDLINE_FORCE is not set +CONFIG_KEXEC=y +CONFIG_ATAGS_PROC=y +# CONFIG_CRASH_DUMP is not set +CONFIG_AUTO_ZRELADDR=y +# CONFIG_EFI is not set + +# +# CPU Power Management +# + +# +# CPU Frequency scaling +# +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_GOV_ATTR_SET=y +CONFIG_CPU_FREQ_GOV_COMMON=y +CONFIG_CPU_FREQ_STAT=y +# CONFIG_CPU_FREQ_STAT_DETAILS is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y +# CONFIG_CPU_FREQ_GOV_SCHEDUTIL is not set + +# +# CPU frequency scaling drivers +# +CONFIG_CPUFREQ_DT=y +CONFIG_CPUFREQ_DT_PLATDEV=y +# CONFIG_ARM_BIG_LITTLE_CPUFREQ is not set +CONFIG_ARM_BRCMSTB_AVS_CPUFREQ=y +# CONFIG_ARM_BRCMSTB_AVS_CPUFREQ_DEBUG is not set +# CONFIG_ARM_KIRKWOOD_CPUFREQ is not set +# CONFIG_QORIQ_CPUFREQ is not set + +# +# CPU Idle +# +CONFIG_CPU_IDLE=y +CONFIG_CPU_IDLE_GOV_LADDER=y +CONFIG_CPU_IDLE_GOV_MENU=y +CONFIG_DT_IDLE_STATES=y + +# +# ARM CPU Idle Drivers +# +CONFIG_ARM_CPUIDLE=y +# CONFIG_ARM_HIGHBANK_CPUIDLE is not set +# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set + +# +# Floating point emulation +# + +# +# At least one emulation must be selected +# +CONFIG_VFP=y +CONFIG_VFPv3=y +CONFIG_NEON=y +CONFIG_KERNEL_MODE_NEON=y + +# +# Userspace binary formats +# +CONFIG_BINFMT_ELF=y +CONFIG_ELFCORE=y +CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y +CONFIG_BINFMT_SCRIPT=y +# CONFIG_BINFMT_FLAT is not set +# CONFIG_HAVE_AOUT is not set +# CONFIG_BINFMT_MISC is not set +CONFIG_COREDUMP=y + +# +# Power management options +# +CONFIG_SUSPEND=y +CONFIG_SUSPEND_FREEZER=y +# CONFIG_SUSPEND_SKIP_SYNC is not set +# CONFIG_HIBERNATION is not set +CONFIG_PM_SLEEP=y +CONFIG_PM_SLEEP_SMP=y +# CONFIG_PM_AUTOSLEEP is not set +# CONFIG_PM_WAKELOCKS is not set +CONFIG_PM=y +# CONFIG_PM_DEBUG is not set +# CONFIG_APM_EMULATION is not set +CONFIG_PM_OPP=y +CONFIG_PM_CLK=y +# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set +CONFIG_CPU_PM=y +CONFIG_ARCH_SUSPEND_POSSIBLE=y +CONFIG_ARM_CPU_SUSPEND=y +CONFIG_ARCH_HIBERNATION_POSSIBLE=y +CONFIG_NET=y +CONFIG_NET_INGRESS=y + +# +# Networking options +# +CONFIG_PACKET=y +# CONFIG_PACKET_DIAG is not set +CONFIG_UNIX=y +# CONFIG_UNIX_DIAG is not set +CONFIG_XFRM=y +CONFIG_XFRM_ALGO=m +# CONFIG_XFRM_USER is not set +# CONFIG_XFRM_SUB_POLICY is not set +# CONFIG_XFRM_MIGRATE is not set +# CONFIG_XFRM_STATISTICS is not set +CONFIG_XFRM_IPCOMP=m +# CONFIG_NET_KEY is not set +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +# CONFIG_IP_ADVANCED_ROUTER is not set +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_IP_PNP_BOOTP=y +CONFIG_IP_PNP_RARP=y +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE_DEMUX is not set +CONFIG_NET_IP_TUNNEL=m +# CONFIG_IP_MROUTE is not set +CONFIG_SYN_COOKIES=y +# CONFIG_NET_UDP_TUNNEL is not set +# CONFIG_NET_FOU is not set +# CONFIG_NET_FOU_IP_TUNNELS is not set +# CONFIG_INET_AH is not set +# CONFIG_INET_ESP is not set +# CONFIG_INET_IPCOMP is not set +# CONFIG_INET_XFRM_TUNNEL is not set +CONFIG_INET_TUNNEL=m +# CONFIG_INET_XFRM_MODE_TRANSPORT is not set +# CONFIG_INET_XFRM_MODE_TUNNEL is not set +# CONFIG_INET_XFRM_MODE_BEET is not set +CONFIG_INET_DIAG=y +CONFIG_INET_TCP_DIAG=y +CONFIG_INET_UDP_DIAG=m +# CONFIG_INET_RAW_DIAG is not set +# CONFIG_INET_DIAG_DESTROY is not set +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_CUBIC=y +CONFIG_DEFAULT_TCP_CONG="cubic" +# CONFIG_TCP_MD5SIG is not set +CONFIG_IPV6=m +CONFIG_IPV6_ROUTER_PREF=y +# CONFIG_IPV6_ROUTE_INFO is not set +# CONFIG_IPV6_OPTIMISTIC_DAD is not set +CONFIG_INET6_AH=m +CONFIG_INET6_ESP=m +CONFIG_INET6_IPCOMP=m +CONFIG_IPV6_MIP6=m +# CONFIG_IPV6_ILA is not set +CONFIG_INET6_XFRM_TUNNEL=m +CONFIG_INET6_TUNNEL=m +CONFIG_INET6_XFRM_MODE_TRANSPORT=m +CONFIG_INET6_XFRM_MODE_TUNNEL=m +CONFIG_INET6_XFRM_MODE_BEET=m +CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m +# CONFIG_IPV6_VTI is not set +CONFIG_IPV6_SIT=m +# CONFIG_IPV6_SIT_6RD is not set +CONFIG_IPV6_NDISC_NODETYPE=y +CONFIG_IPV6_TUNNEL=m +# CONFIG_IPV6_FOU is not set +# CONFIG_IPV6_FOU_TUNNEL is not set +# CONFIG_IPV6_MULTIPLE_TABLES is not set +CONFIG_IPV6_MROUTE=y +# CONFIG_IPV6_MROUTE_MULTIPLE_TABLES is not set +CONFIG_IPV6_PIMSM_V2=y +# CONFIG_IPV6_SEG6_LWTUNNEL is not set +# CONFIG_IPV6_SEG6_HMAC is not set +# CONFIG_NETWORK_SECMARK is not set +CONFIG_NET_PTP_CLASSIFY=y +# CONFIG_NETWORK_PHY_TIMESTAMPING is not set +CONFIG_NETFILTER=y +# CONFIG_NETFILTER_DEBUG is not set +CONFIG_NETFILTER_ADVANCED=y +CONFIG_BRIDGE_NETFILTER=m + +# +# Core Netfilter Configuration +# +CONFIG_NETFILTER_INGRESS=y +CONFIG_NETFILTER_NETLINK=m +# CONFIG_NETFILTER_NETLINK_ACCT is not set +# CONFIG_NETFILTER_NETLINK_QUEUE is not set +# CONFIG_NETFILTER_NETLINK_LOG is not set +# CONFIG_NF_CONNTRACK is not set +# CONFIG_NF_LOG_NETDEV is not set +# CONFIG_NF_TABLES is not set +CONFIG_NETFILTER_XTABLES=m + +# +# Xtables combined modules +# +# CONFIG_NETFILTER_XT_MARK is not set +# CONFIG_NETFILTER_XT_SET is not set + +# +# Xtables targets +# +# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set +# CONFIG_NETFILTER_XT_TARGET_HMARK is not set +# CONFIG_NETFILTER_XT_TARGET_IDLETIMER is not set +# CONFIG_NETFILTER_XT_TARGET_LED is not set +# CONFIG_NETFILTER_XT_TARGET_LOG is not set +# CONFIG_NETFILTER_XT_TARGET_MARK is not set +# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set +# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set +# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set +# CONFIG_NETFILTER_XT_TARGET_TEE is not set +# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set + +# +# Xtables matches +# +# CONFIG_NETFILTER_XT_MATCH_ADDRTYPE is not set +# CONFIG_NETFILTER_XT_MATCH_BPF is not set +# CONFIG_NETFILTER_XT_MATCH_CGROUP is not set +# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set +# CONFIG_NETFILTER_XT_MATCH_CPU is not set +# CONFIG_NETFILTER_XT_MATCH_DCCP is not set +# CONFIG_NETFILTER_XT_MATCH_DEVGROUP is not set +# CONFIG_NETFILTER_XT_MATCH_DSCP is not set +# CONFIG_NETFILTER_XT_MATCH_ECN is not set +# CONFIG_NETFILTER_XT_MATCH_ESP is not set +# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set +# CONFIG_NETFILTER_XT_MATCH_HL is not set +# CONFIG_NETFILTER_XT_MATCH_IPCOMP is not set +# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set +# CONFIG_NETFILTER_XT_MATCH_L2TP is not set +# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set +# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set +# CONFIG_NETFILTER_XT_MATCH_MAC is not set +# CONFIG_NETFILTER_XT_MATCH_MARK is not set +# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set +# CONFIG_NETFILTER_XT_MATCH_NFACCT is not set +# CONFIG_NETFILTER_XT_MATCH_OSF is not set +# CONFIG_NETFILTER_XT_MATCH_OWNER is not set +# CONFIG_NETFILTER_XT_MATCH_POLICY is not set +# CONFIG_NETFILTER_XT_MATCH_PHYSDEV is not set +# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set +# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set +# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set +# CONFIG_NETFILTER_XT_MATCH_REALM is not set +# CONFIG_NETFILTER_XT_MATCH_RECENT is not set +# CONFIG_NETFILTER_XT_MATCH_SCTP is not set +# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set +# CONFIG_NETFILTER_XT_MATCH_STRING is not set +# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set +# CONFIG_NETFILTER_XT_MATCH_TIME is not set +# CONFIG_NETFILTER_XT_MATCH_U32 is not set +CONFIG_IP_SET=m +CONFIG_IP_SET_MAX=256 +# CONFIG_IP_SET_BITMAP_IP is not set +# CONFIG_IP_SET_BITMAP_IPMAC is not set +# CONFIG_IP_SET_BITMAP_PORT is not set +# CONFIG_IP_SET_HASH_IP is not set +# CONFIG_IP_SET_HASH_IPMARK is not set +# CONFIG_IP_SET_HASH_IPPORT is not set +# CONFIG_IP_SET_HASH_IPPORTIP is not set +# CONFIG_IP_SET_HASH_IPPORTNET is not set +# CONFIG_IP_SET_HASH_IPMAC is not set +# CONFIG_IP_SET_HASH_MAC is not set +# CONFIG_IP_SET_HASH_NETPORTNET is not set +# CONFIG_IP_SET_HASH_NET is not set +# CONFIG_IP_SET_HASH_NETNET is not set +# CONFIG_IP_SET_HASH_NETPORT is not set +# CONFIG_IP_SET_HASH_NETIFACE is not set +# CONFIG_IP_SET_LIST_SET is not set +# CONFIG_IP_VS is not set + +# +# IP: Netfilter Configuration +# +# CONFIG_NF_DEFRAG_IPV4 is not set +# CONFIG_NF_SOCKET_IPV4 is not set +# CONFIG_NF_DUP_IPV4 is not set +# CONFIG_NF_LOG_ARP is not set +# CONFIG_NF_LOG_IPV4 is not set +CONFIG_NF_REJECT_IPV4=m +CONFIG_IP_NF_IPTABLES=m +# CONFIG_IP_NF_MATCH_AH is not set +# CONFIG_IP_NF_MATCH_ECN is not set +# CONFIG_IP_NF_MATCH_TTL is not set +CONFIG_IP_NF_FILTER=m +CONFIG_IP_NF_TARGET_REJECT=m +# CONFIG_IP_NF_MANGLE is not set +# CONFIG_IP_NF_RAW is not set +# CONFIG_IP_NF_ARPTABLES is not set + +# +# IPv6: Netfilter Configuration +# +# CONFIG_NF_DEFRAG_IPV6 is not set +# CONFIG_NF_SOCKET_IPV6 is not set +# CONFIG_NF_DUP_IPV6 is not set +CONFIG_NF_REJECT_IPV6=m +# CONFIG_NF_LOG_IPV6 is not set +CONFIG_IP6_NF_IPTABLES=m +# CONFIG_IP6_NF_MATCH_AH is not set +# CONFIG_IP6_NF_MATCH_EUI64 is not set +# CONFIG_IP6_NF_MATCH_FRAG is not set +# CONFIG_IP6_NF_MATCH_OPTS is not set +# CONFIG_IP6_NF_MATCH_HL is not set +# CONFIG_IP6_NF_MATCH_IPV6HEADER is not set +# CONFIG_IP6_NF_MATCH_MH is not set +# CONFIG_IP6_NF_MATCH_RT is not set +CONFIG_IP6_NF_FILTER=m +CONFIG_IP6_NF_TARGET_REJECT=m +# CONFIG_IP6_NF_MANGLE is not set +# CONFIG_IP6_NF_RAW is not set +# CONFIG_BRIDGE_NF_EBTABLES is not set +# CONFIG_IP_DCCP is not set +# CONFIG_IP_SCTP is not set +# CONFIG_RDS is not set +# CONFIG_TIPC is not set +# CONFIG_ATM is not set +# CONFIG_L2TP is not set +CONFIG_STP=m +CONFIG_BRIDGE=m +CONFIG_BRIDGE_IGMP_SNOOPING=y +CONFIG_HAVE_NET_DSA=y +# CONFIG_VLAN_8021Q is not set +# CONFIG_DECNET is not set +CONFIG_LLC=m +CONFIG_LLC2=m +# CONFIG_IPX is not set +CONFIG_ATALK=m +# CONFIG_DEV_APPLETALK is not set +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_PHONET is not set +# CONFIG_6LOWPAN is not set +# CONFIG_IEEE802154 is not set +# CONFIG_NET_SCHED is not set +# CONFIG_DCB is not set +CONFIG_DNS_RESOLVER=y +# CONFIG_BATMAN_ADV is not set +# CONFIG_OPENVSWITCH is not set +# CONFIG_VSOCKETS is not set +# CONFIG_NETLINK_DIAG is not set +# CONFIG_MPLS is not set +# CONFIG_HSR is not set +# CONFIG_NET_SWITCHDEV is not set +# CONFIG_NET_L3_MASTER_DEV is not set +# CONFIG_NET_NCSI is not set +CONFIG_RPS=y +CONFIG_RFS_ACCEL=y +CONFIG_XPS=y +# CONFIG_CGROUP_NET_PRIO is not set +# CONFIG_CGROUP_NET_CLASSID is not set +CONFIG_NET_RX_BUSY_POLL=y +CONFIG_BQL=y +# CONFIG_BPF_JIT is not set +CONFIG_NET_FLOW_LIMIT=y + +# +# Network testing +# +CONFIG_NET_PKTGEN=m +# CONFIG_HAMRADIO is not set +# CONFIG_CAN is not set +# CONFIG_IRDA is not set +CONFIG_BT=m +CONFIG_BT_BREDR=y +CONFIG_BT_RFCOMM=m +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_BNEP=m +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_HIDP=m +CONFIG_BT_HS=y +CONFIG_BT_LE=y +# CONFIG_BT_LEDS is not set +# CONFIG_BT_SELFTEST is not set +CONFIG_BT_DEBUGFS=y + +# +# Bluetooth device drivers +# +CONFIG_BT_INTEL=m +CONFIG_BT_BCM=m +CONFIG_BT_RTL=m +CONFIG_BT_HCIBTUSB=m +CONFIG_BT_HCIBTUSB_BCM=y +CONFIG_BT_HCIBTUSB_RTL=y +# CONFIG_BT_HCIBTSDIO is not set +CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART_H4=y +# CONFIG_BT_HCIUART_BCSP is not set +# CONFIG_BT_HCIUART_ATH3K is not set +# CONFIG_BT_HCIUART_LL is not set +CONFIG_BT_HCIUART_3WIRE=y +# CONFIG_BT_HCIUART_INTEL is not set +CONFIG_BT_HCIUART_BCM=y +# CONFIG_BT_HCIUART_QCA is not set +# CONFIG_BT_HCIUART_AG6XX is not set +# CONFIG_BT_HCIUART_MRVL is not set +CONFIG_BT_HCIBCM203X=m +# CONFIG_BT_HCIBPA10X is not set +CONFIG_BT_HCIBFUSB=m +CONFIG_BT_HCIVHCI=m +CONFIG_BT_MRVL=m +CONFIG_BT_MRVL_SDIO=m +CONFIG_BT_ATH3K=m +# CONFIG_AF_RXRPC is not set +# CONFIG_AF_KCM is not set +# CONFIG_STREAM_PARSER is not set +CONFIG_WIRELESS=y +CONFIG_WIRELESS_EXT=y +CONFIG_WEXT_CORE=y +CONFIG_WEXT_PROC=y +CONFIG_WEXT_SPY=y +CONFIG_WEXT_PRIV=y +CONFIG_CFG80211=m +# CONFIG_NL80211_TESTMODE is not set +# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set +# CONFIG_CFG80211_CERTIFICATION_ONUS is not set +# CONFIG_CFG80211_DEFAULT_PS is not set +# CONFIG_CFG80211_DEBUGFS is not set +# CONFIG_CFG80211_INTERNAL_REGDB is not set +CONFIG_CFG80211_CRDA_SUPPORT=y +CONFIG_CFG80211_WEXT=y +CONFIG_LIB80211=m +CONFIG_LIB80211_CRYPT_WEP=m +CONFIG_LIB80211_CRYPT_CCMP=m +CONFIG_LIB80211_CRYPT_TKIP=m +# CONFIG_LIB80211_DEBUG is not set +CONFIG_MAC80211=m +CONFIG_MAC80211_HAS_RC=y +CONFIG_MAC80211_RC_MINSTREL=y +CONFIG_MAC80211_RC_MINSTREL_HT=y +CONFIG_MAC80211_RC_MINSTREL_VHT=y +CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y +CONFIG_MAC80211_RC_DEFAULT="minstrel_ht" +CONFIG_MAC80211_MESH=y +CONFIG_MAC80211_LEDS=y +# CONFIG_MAC80211_DEBUGFS is not set +# CONFIG_MAC80211_MESSAGE_TRACING is not set +# CONFIG_MAC80211_DEBUG_MENU is not set +CONFIG_MAC80211_STA_HASH_MAX_SIZE=0 +# CONFIG_WIMAX is not set +CONFIG_RFKILL=m +CONFIG_RFKILL_LEDS=y +CONFIG_RFKILL_INPUT=y +# CONFIG_RFKILL_REGULATOR is not set +# CONFIG_NET_9P is not set +# CONFIG_CAIF is not set +# CONFIG_CEPH_LIB is not set +# CONFIG_NFC is not set +# CONFIG_LWTUNNEL is not set +CONFIG_DST_CACHE=y +# CONFIG_NET_DEVLINK is not set +CONFIG_MAY_USE_DEVLINK=y +CONFIG_HAVE_CBPF_JIT=y + +# +# Device Drivers +# + +# +# Generic Driver Options +# +CONFIG_UEVENT_HELPER=y +CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_FW_LOADER=y +CONFIG_FIRMWARE_IN_KERNEL=y +CONFIG_EXTRA_FIRMWARE="" +# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set +CONFIG_WANT_DEV_COREDUMP=y +CONFIG_ALLOW_DEV_COREDUMP=y +CONFIG_DEV_COREDUMP=y +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_DEVRES is not set +# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set +# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set +# CONFIG_SYS_HYPERVISOR is not set +# CONFIG_GENERIC_CPU_DEVICES is not set +CONFIG_SOC_BUS=y +CONFIG_REGMAP=y +CONFIG_REGMAP_I2C=y +CONFIG_REGMAP_SPI=y +CONFIG_REGMAP_MMIO=y +CONFIG_DMA_SHARED_BUFFER=y +# CONFIG_DMA_FENCE_TRACE is not set +CONFIG_DMA_CMA=y + +# +# Default contiguous memory area size: +# +CONFIG_CMA_SIZE_MBYTES=0 +CONFIG_CMA_SIZE_SEL_MBYTES=y +# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set +# CONFIG_CMA_SIZE_SEL_MIN is not set +# CONFIG_CMA_SIZE_SEL_MAX is not set +CONFIG_CMA_ALIGNMENT=8 + +# +# Bus devices +# +# CONFIG_ARM_CCI400_PMU is not set +# CONFIG_ARM_CCI5xx_PMU is not set +# CONFIG_ARM_CCN is not set +CONFIG_BRCMSTB_GISB_ARB=y +# CONFIG_VEXPRESS_CONFIG is not set +# CONFIG_CONNECTOR is not set +CONFIG_MTD=y +# CONFIG_MTD_TESTS is not set +# CONFIG_MTD_REDBOOT_PARTS is not set +CONFIG_MTD_CMDLINE_PARTS=y +# CONFIG_MTD_AFS_PARTS is not set +CONFIG_MTD_OF_PARTS=y +# CONFIG_MTD_AR7_PARTS is not set + +# +# User Modules And Translation Layers +# +CONFIG_MTD_BLKDEVS=y +CONFIG_MTD_BLOCK=y +# CONFIG_FTL is not set +# CONFIG_NFTL is not set +# CONFIG_INFTL is not set +# CONFIG_RFD_FTL is not set +# CONFIG_SSFDC is not set +# CONFIG_SM_FTL is not set +# CONFIG_MTD_OOPS is not set +# CONFIG_MTD_SWAP is not set +# CONFIG_MTD_PARTITIONED_MASTER is not set + +# +# RAM/ROM/Flash chip drivers +# +CONFIG_MTD_CFI=y +CONFIG_MTD_JEDECPROBE=y +CONFIG_MTD_GEN_PROBE=y +# CONFIG_MTD_CFI_ADV_OPTIONS is not set +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_CFI_I4 is not set +# CONFIG_MTD_CFI_I8 is not set +CONFIG_MTD_CFI_INTELEXT=y +CONFIG_MTD_CFI_AMDSTD=y +CONFIG_MTD_CFI_STAA=y +CONFIG_MTD_CFI_UTIL=y +# CONFIG_MTD_RAM is not set +CONFIG_MTD_ROM=y +CONFIG_MTD_ABSENT=y + +# +# Mapping drivers for chip access +# +# CONFIG_MTD_COMPLEX_MAPPINGS is not set +# CONFIG_MTD_PHYSMAP is not set +CONFIG_MTD_PHYSMAP_OF=y +# CONFIG_MTD_PHYSMAP_OF_VERSATILE is not set +# CONFIG_MTD_IMPA7 is not set +# CONFIG_MTD_INTEL_VR_NOR is not set +# CONFIG_MTD_PLATRAM is not set + +# +# Self-contained MTD device drivers +# +# CONFIG_MTD_PMC551 is not set +# CONFIG_MTD_DATAFLASH is not set +# CONFIG_MTD_SST25L is not set +# CONFIG_MTD_SLRAM is not set +# CONFIG_MTD_PHRAM is not set +# CONFIG_MTD_MTDRAM is not set +# CONFIG_MTD_BLOCK2MTD is not set + +# +# Disk-On-Chip Device Drivers +# +# CONFIG_MTD_DOCG3 is not set +CONFIG_MTD_NAND_ECC=y +# CONFIG_MTD_NAND_ECC_SMC is not set +CONFIG_MTD_NAND=y +# CONFIG_MTD_NAND_ECC_BCH is not set +# CONFIG_MTD_SM_COMMON is not set +# CONFIG_MTD_NAND_DENALI_PCI is not set +# CONFIG_MTD_NAND_DENALI_DT is not set +# CONFIG_MTD_NAND_OMAP_BCH_BUILD is not set +CONFIG_MTD_NAND_IDS=y +# CONFIG_MTD_NAND_RICOH is not set +# CONFIG_MTD_NAND_DISKONCHIP is not set +# CONFIG_MTD_NAND_DOCG4 is not set +# CONFIG_MTD_NAND_CAFE is not set +# CONFIG_MTD_NAND_NANDSIM is not set +# CONFIG_MTD_NAND_BRCMNAND is not set +# CONFIG_MTD_NAND_PLATFORM is not set +# CONFIG_MTD_NAND_OXNAS is not set +# CONFIG_MTD_NAND_HISI504 is not set +# CONFIG_MTD_NAND_MTK is not set +# CONFIG_MTD_ONENAND is not set + +# +# LPDDR & LPDDR2 PCM memory drivers +# +# CONFIG_MTD_LPDDR is not set +# CONFIG_MTD_LPDDR2_NVM is not set +# CONFIG_MTD_SPI_NOR is not set +CONFIG_MTD_UBI=y +CONFIG_MTD_UBI_WL_THRESHOLD=4096 +CONFIG_MTD_UBI_BEB_LIMIT=20 +# CONFIG_MTD_UBI_FASTMAP is not set +CONFIG_MTD_UBI_GLUEBI=y +# CONFIG_MTD_UBI_BLOCK is not set +CONFIG_DTC=y +CONFIG_OF=y +# CONFIG_OF_UNITTEST is not set +CONFIG_OF_FLATTREE=y +CONFIG_OF_EARLY_FLATTREE=y +CONFIG_OF_ADDRESS=y +CONFIG_OF_ADDRESS_PCI=y +CONFIG_OF_IRQ=y +CONFIG_OF_NET=y +CONFIG_OF_MDIO=y +CONFIG_OF_PCI=y +CONFIG_OF_PCI_IRQ=y +CONFIG_OF_RESERVED_MEM=y +# CONFIG_OF_OVERLAY is not set +CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y +# CONFIG_PARPORT is not set +CONFIG_BLK_DEV=y +# CONFIG_BLK_DEV_NULL_BLK is not set +# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set +# CONFIG_BLK_CPQ_CISS_DA is not set +# CONFIG_BLK_DEV_DAC960 is not set +# CONFIG_BLK_DEV_UMEM is not set +# CONFIG_BLK_DEV_COW_COMMON is not set +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 +# CONFIG_BLK_DEV_CRYPTOLOOP is not set +# CONFIG_BLK_DEV_DRBD is not set +# CONFIG_BLK_DEV_NBD is not set +# CONFIG_BLK_DEV_SX8 is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=8192 +# CONFIG_CDROM_PKTCDVD is not set +# CONFIG_ATA_OVER_ETH is not set +# CONFIG_BLK_DEV_RBD is not set +# CONFIG_BLK_DEV_RSXX is not set +# CONFIG_BLK_DEV_NVME is not set +# CONFIG_NVME_FC is not set + +# +# Misc devices +# +# CONFIG_SENSORS_LIS3LV02D is not set +# CONFIG_AD525X_DPOT is not set +# CONFIG_DUMMY_IRQ is not set +# CONFIG_PHANTOM is not set +# CONFIG_SGI_IOC4 is not set +# CONFIG_TIFM_CORE is not set +# CONFIG_ICS932S401 is not set +# CONFIG_ENCLOSURE_SERVICES is not set +# CONFIG_HP_ILO is not set +# CONFIG_APDS9802ALS is not set +# CONFIG_ISL29003 is not set +# CONFIG_ISL29020 is not set +# CONFIG_SENSORS_TSL2550 is not set +# CONFIG_SENSORS_BH1770 is not set +# CONFIG_SENSORS_APDS990X is not set +# CONFIG_HMC6352 is not set +# CONFIG_DS1682 is not set +# CONFIG_TI_DAC7512 is not set +# CONFIG_USB_SWITCH_FSA9480 is not set +# CONFIG_LATTICE_ECP3_CONFIG is not set +# CONFIG_SRAM is not set +# CONFIG_C2PORT is not set + +# +# EEPROM support +# +# CONFIG_EEPROM_AT24 is not set +# CONFIG_EEPROM_AT25 is not set +# CONFIG_EEPROM_LEGACY is not set +# CONFIG_EEPROM_MAX6875 is not set +CONFIG_EEPROM_93CX6=y +# CONFIG_EEPROM_93XX46 is not set +# CONFIG_CB710_CORE is not set + +# +# Texas Instruments shared transport line discipline +# +# CONFIG_SENSORS_LIS3_SPI is not set +# CONFIG_SENSORS_LIS3_I2C is not set + +# +# Altera FPGA firmware download module +# +# CONFIG_ALTERA_STAPL is not set + +# +# Intel MIC Bus Driver +# + +# +# SCIF Bus Driver +# + +# +# VOP Bus Driver +# + +# +# Intel MIC Host Driver +# + +# +# Intel MIC Card Driver +# + +# +# SCIF Driver +# + +# +# Intel MIC Coprocessor State Management (COSM) Drivers +# + +# +# VOP Driver +# +# CONFIG_ECHO is not set +# CONFIG_CXL_BASE is not set +# CONFIG_CXL_AFU_DRIVER_OPS is not set +CONFIG_HAVE_IDE=y +# CONFIG_IDE is not set + +# +# SCSI device support +# +CONFIG_SCSI_MOD=y +# CONFIG_RAID_ATTRS is not set +CONFIG_SCSI=y +CONFIG_SCSI_DMA=y +# CONFIG_SCSI_NETLINK is not set +# CONFIG_SCSI_MQ_DEFAULT is not set +CONFIG_SCSI_PROC_FS=y + +# +# SCSI support type (disk, tape, CD-ROM) +# +CONFIG_BLK_DEV_SD=y +# CONFIG_CHR_DEV_ST is not set +# CONFIG_CHR_DEV_OSST is not set +CONFIG_BLK_DEV_SR=y +# CONFIG_BLK_DEV_SR_VENDOR is not set +CONFIG_CHR_DEV_SG=y +# CONFIG_CHR_DEV_SCH is not set +# CONFIG_SCSI_CONSTANTS is not set +# CONFIG_SCSI_LOGGING is not set +# CONFIG_SCSI_SCAN_ASYNC is not set + +# +# SCSI Transports +# +# CONFIG_SCSI_SPI_ATTRS is not set +# CONFIG_SCSI_FC_ATTRS is not set +# CONFIG_SCSI_ISCSI_ATTRS is not set +# CONFIG_SCSI_SAS_ATTRS is not set +# CONFIG_SCSI_SAS_LIBSAS is not set +# CONFIG_SCSI_SRP_ATTRS is not set +CONFIG_SCSI_LOWLEVEL=y +# CONFIG_ISCSI_TCP is not set +# CONFIG_ISCSI_BOOT_SYSFS is not set +# CONFIG_SCSI_CXGB3_ISCSI is not set +# CONFIG_SCSI_CXGB4_ISCSI is not set +# CONFIG_SCSI_BNX2_ISCSI is not set +# CONFIG_BE2ISCSI is not set +# CONFIG_BLK_DEV_3W_XXXX_RAID is not set +# CONFIG_SCSI_HPSA is not set +# CONFIG_SCSI_3W_9XXX is not set +# CONFIG_SCSI_3W_SAS is not set +# CONFIG_SCSI_ACARD is not set +# CONFIG_SCSI_AACRAID is not set +# CONFIG_SCSI_AIC7XXX is not set +# CONFIG_SCSI_AIC79XX is not set +# CONFIG_SCSI_AIC94XX is not set +# CONFIG_SCSI_MVSAS is not set +# CONFIG_SCSI_MVUMI is not set +# CONFIG_SCSI_ADVANSYS is not set +# CONFIG_SCSI_ARCMSR is not set +# CONFIG_SCSI_ESAS2R is not set +# CONFIG_MEGARAID_NEWGEN is not set +# CONFIG_MEGARAID_LEGACY is not set +# CONFIG_MEGARAID_SAS is not set +# CONFIG_SCSI_MPT3SAS is not set +# CONFIG_SCSI_MPT2SAS is not set +# CONFIG_SCSI_SMARTPQI is not set +# CONFIG_SCSI_UFSHCD is not set +# CONFIG_SCSI_HPTIOP is not set +# CONFIG_SCSI_SNIC is not set +# CONFIG_SCSI_DMX3191D is not set +# CONFIG_SCSI_FUTURE_DOMAIN is not set +# CONFIG_SCSI_IPS is not set +# CONFIG_SCSI_INITIO is not set +# CONFIG_SCSI_INIA100 is not set +# CONFIG_SCSI_STEX is not set +# CONFIG_SCSI_SYM53C8XX_2 is not set +# CONFIG_SCSI_IPR is not set +# CONFIG_SCSI_QLOGIC_1280 is not set +# CONFIG_SCSI_QLA_ISCSI is not set +# CONFIG_SCSI_DC395x is not set +# CONFIG_SCSI_AM53C974 is not set +# CONFIG_SCSI_NSP32 is not set +# CONFIG_SCSI_WD719X is not set +# CONFIG_SCSI_DEBUG is not set +# CONFIG_SCSI_PMCRAID is not set +# CONFIG_SCSI_PM8001 is not set +# CONFIG_SCSI_DH is not set +# CONFIG_SCSI_OSD_INITIATOR is not set +CONFIG_ATA=y +# CONFIG_ATA_NONSTANDARD is not set +CONFIG_ATA_VERBOSE_ERROR=y +CONFIG_SATA_PMP=y + +# +# Controllers with non-SFF native interface +# +# CONFIG_SATA_AHCI is not set +CONFIG_SATA_AHCI_PLATFORM=y +CONFIG_AHCI_BRCM=y +# CONFIG_AHCI_CEVA is not set +# CONFIG_AHCI_QORIQ is not set +# CONFIG_SATA_INIC162X is not set +# CONFIG_SATA_ACARD_AHCI is not set +# CONFIG_SATA_SIL24 is not set +CONFIG_ATA_SFF=y + +# +# SFF controllers with custom DMA interface +# +# CONFIG_PDC_ADMA is not set +# CONFIG_SATA_QSTOR is not set +# CONFIG_SATA_SX4 is not set +CONFIG_ATA_BMDMA=y + +# +# SATA SFF controllers with BMDMA +# +# CONFIG_ATA_PIIX is not set +# CONFIG_SATA_MV is not set +# CONFIG_SATA_NV is not set +# CONFIG_SATA_PROMISE is not set +# CONFIG_SATA_SIL is not set +# CONFIG_SATA_SIS is not set +# CONFIG_SATA_SVW is not set +# CONFIG_SATA_ULI is not set +# CONFIG_SATA_VIA is not set +# CONFIG_SATA_VITESSE is not set + +# +# PATA SFF controllers with BMDMA +# +# CONFIG_PATA_ALI is not set +# CONFIG_PATA_AMD is not set +# CONFIG_PATA_ARTOP is not set +# CONFIG_PATA_ATIIXP is not set +# CONFIG_PATA_ATP867X is not set +# CONFIG_PATA_CMD64X is not set +# CONFIG_PATA_CYPRESS is not set +# CONFIG_PATA_EFAR is not set +# CONFIG_PATA_HPT366 is not set +# CONFIG_PATA_HPT37X is not set +# CONFIG_PATA_HPT3X2N is not set +# CONFIG_PATA_HPT3X3 is not set +# CONFIG_PATA_IT8213 is not set +# CONFIG_PATA_IT821X is not set +# CONFIG_PATA_JMICRON is not set +# CONFIG_PATA_MARVELL is not set +# CONFIG_PATA_NETCELL is not set +# CONFIG_PATA_NINJA32 is not set +# CONFIG_PATA_NS87415 is not set +# CONFIG_PATA_OLDPIIX is not set +# CONFIG_PATA_OPTIDMA is not set +# CONFIG_PATA_PDC2027X is not set +# CONFIG_PATA_PDC_OLD is not set +# CONFIG_PATA_RADISYS is not set +# CONFIG_PATA_RDC is not set +# CONFIG_PATA_SCH is not set +# CONFIG_PATA_SERVERWORKS is not set +# CONFIG_PATA_SIL680 is not set +# CONFIG_PATA_SIS is not set +# CONFIG_PATA_TOSHIBA is not set +# CONFIG_PATA_TRIFLEX is not set +# CONFIG_PATA_VIA is not set +# CONFIG_PATA_WINBOND is not set + +# +# PIO-only SFF controllers +# +# CONFIG_PATA_CMD640_PCI is not set +# CONFIG_PATA_MPIIX is not set +# CONFIG_PATA_NS87410 is not set +# CONFIG_PATA_OPTI is not set +# CONFIG_PATA_PLATFORM is not set +# CONFIG_PATA_RZ1000 is not set + +# +# Generic fallback / legacy drivers +# +# CONFIG_ATA_GENERIC is not set +# CONFIG_PATA_LEGACY is not set +# CONFIG_MD is not set +# CONFIG_TARGET_CORE is not set +# CONFIG_FUSION is not set + +# +# IEEE 1394 (FireWire) support +# +# CONFIG_FIREWIRE is not set +# CONFIG_FIREWIRE_NOSY is not set +CONFIG_NETDEVICES=y +CONFIG_MII=y +CONFIG_NET_CORE=y +# CONFIG_BONDING is not set +# CONFIG_DUMMY is not set +# CONFIG_EQUALIZER is not set +# CONFIG_NET_FC is not set +# CONFIG_NET_TEAM is not set +# CONFIG_MACVLAN is not set +# CONFIG_VXLAN is not set +# CONFIG_MACSEC is not set +# CONFIG_NETCONSOLE is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set +CONFIG_TUN=y +# CONFIG_TUN_VNET_CROSS_LE is not set +# CONFIG_VETH is not set +# CONFIG_NLMON is not set +# CONFIG_ARCNET is not set + +# +# CAIF transport drivers +# + +# +# Distributed Switch Architecture drivers +# +CONFIG_ETHERNET=y +CONFIG_NET_VENDOR_3COM=y +# CONFIG_VORTEX is not set +# CONFIG_TYPHOON is not set +# CONFIG_NET_VENDOR_ADAPTEC is not set +CONFIG_NET_VENDOR_AGERE=y +# CONFIG_ET131X is not set +CONFIG_NET_VENDOR_ALACRITECH=y +# CONFIG_SLICOSS is not set +# CONFIG_NET_VENDOR_ALTEON is not set +# CONFIG_ALTERA_TSE is not set +# CONFIG_NET_VENDOR_AMAZON is not set +# CONFIG_NET_VENDOR_AMD is not set +# CONFIG_NET_VENDOR_ARC is not set +# CONFIG_NET_VENDOR_ATHEROS is not set +# CONFIG_NET_VENDOR_AURORA is not set +# CONFIG_NET_CADENCE is not set +CONFIG_NET_VENDOR_BROADCOM=y +# CONFIG_B44 is not set +CONFIG_BCMGENET=y +# CONFIG_BNX2 is not set +# CONFIG_CNIC is not set +# CONFIG_TIGON3 is not set +# CONFIG_BNX2X is not set +CONFIG_SYSTEMPORT=y +# CONFIG_BNXT is not set +# CONFIG_NET_VENDOR_BROCADE is not set +CONFIG_NET_VENDOR_CAVIUM=y +# CONFIG_NET_VENDOR_CHELSIO is not set +# CONFIG_NET_VENDOR_CIRRUS is not set +# CONFIG_NET_VENDOR_CISCO is not set +# CONFIG_DM9000 is not set +# CONFIG_DNET is not set +# CONFIG_NET_VENDOR_DEC is not set +# CONFIG_NET_VENDOR_DLINK is not set +# CONFIG_NET_VENDOR_EMULEX is not set +CONFIG_NET_VENDOR_EZCHIP=y +# CONFIG_EZCHIP_NPS_MANAGEMENT_ENET is not set +# CONFIG_NET_VENDOR_EXAR is not set +# CONFIG_NET_VENDOR_FARADAY is not set +CONFIG_NET_VENDOR_HISILICON=y +# CONFIG_HIX5HD2_GMAC is not set +# CONFIG_HISI_FEMAC is not set +# CONFIG_HIP04_ETH is not set +# CONFIG_HNS is not set +# CONFIG_HNS_DSAF is not set +# CONFIG_HNS_ENET is not set +# CONFIG_NET_VENDOR_HP is not set +CONFIG_NET_VENDOR_INTEL=y +# CONFIG_E100 is not set +# CONFIG_E1000 is not set +CONFIG_E1000E=y +# CONFIG_IGB is not set +# CONFIG_IGBVF is not set +# CONFIG_IXGB is not set +# CONFIG_IXGBE is not set +# CONFIG_IXGBEVF is not set +# CONFIG_I40E is not set +# CONFIG_I40EVF is not set +# CONFIG_FM10K is not set +CONFIG_NET_VENDOR_I825XX=y +# CONFIG_JME is not set +# CONFIG_NET_VENDOR_MARVELL is not set +# CONFIG_NET_VENDOR_MELLANOX is not set +# CONFIG_NET_VENDOR_MICREL is not set +# CONFIG_NET_VENDOR_MICROCHIP is not set +# CONFIG_NET_VENDOR_MYRI is not set +# CONFIG_FEALNX is not set +# CONFIG_NET_VENDOR_NATSEMI is not set +CONFIG_NET_VENDOR_NETRONOME=y +# CONFIG_NFP_NETVF is not set +# CONFIG_NET_VENDOR_NVIDIA is not set +# CONFIG_NET_VENDOR_OKI is not set +# CONFIG_ETHOC is not set +# CONFIG_NET_PACKET_ENGINE is not set +# CONFIG_NET_VENDOR_QLOGIC is not set +CONFIG_NET_VENDOR_QUALCOMM=y +# CONFIG_QCA7000 is not set +# CONFIG_QCOM_EMAC is not set +# CONFIG_NET_VENDOR_REALTEK is not set +CONFIG_NET_VENDOR_RENESAS=y +# CONFIG_NET_VENDOR_RDC is not set +CONFIG_NET_VENDOR_ROCKER=y +# CONFIG_NET_VENDOR_SAMSUNG is not set +# CONFIG_NET_VENDOR_SEEQ is not set +# CONFIG_NET_VENDOR_SILAN is not set +# CONFIG_NET_VENDOR_SIS is not set +# CONFIG_NET_VENDOR_SOLARFLARE is not set +# CONFIG_NET_VENDOR_SMSC is not set +# CONFIG_NET_VENDOR_STMICRO is not set +# CONFIG_NET_VENDOR_SUN is not set +# CONFIG_NET_VENDOR_SYNOPSYS is not set +# CONFIG_NET_VENDOR_TEHUTI is not set +# CONFIG_NET_VENDOR_TI is not set +# CONFIG_NET_VENDOR_VIA is not set +# CONFIG_NET_VENDOR_WIZNET is not set +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set +CONFIG_PHYLIB=y +CONFIG_SWPHY=y +# CONFIG_LED_TRIGGER_PHY is not set + +# +# MDIO bus device drivers +# +# CONFIG_MDIO_BCM_UNIMAC is not set +# CONFIG_MDIO_BITBANG is not set +# CONFIG_MDIO_BUS_MUX_MMIOREG is not set +# CONFIG_MDIO_HISI_FEMAC is not set + +# +# MII PHY device drivers +# +# CONFIG_AMD_PHY is not set +# CONFIG_AQUANTIA_PHY is not set +# CONFIG_AT803X_PHY is not set +CONFIG_BCM7XXX_PHY=y +# CONFIG_BCM87XX_PHY is not set +CONFIG_BCM_NET_PHYLIB=y +# CONFIG_BROADCOM_PHY is not set +# CONFIG_CICADA_PHY is not set +# CONFIG_DAVICOM_PHY is not set +# CONFIG_DP83848_PHY is not set +# CONFIG_DP83867_PHY is not set +CONFIG_FIXED_PHY=y +# CONFIG_ICPLUS_PHY is not set +# CONFIG_INTEL_XWAY_PHY is not set +# CONFIG_LSI_ET1011C_PHY is not set +# CONFIG_LXT_PHY is not set +# CONFIG_MARVELL_PHY is not set +# CONFIG_MICREL_PHY is not set +# CONFIG_MICROCHIP_PHY is not set +# CONFIG_MICROSEMI_PHY is not set +# CONFIG_NATIONAL_PHY is not set +# CONFIG_QSEMI_PHY is not set +# CONFIG_REALTEK_PHY is not set +# CONFIG_SMSC_PHY is not set +# CONFIG_STE10XP is not set +# CONFIG_TERANETICS_PHY is not set +# CONFIG_VITESSE_PHY is not set +# CONFIG_XILINX_GMII2RGMII is not set +# CONFIG_MICREL_KS8995MA is not set +CONFIG_PPP=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_FILTER=y +CONFIG_PPP_MPPE=m +CONFIG_PPP_MULTILINK=y +CONFIG_PPPOE=m +CONFIG_PPP_ASYNC=m +CONFIG_PPP_SYNC_TTY=m +# CONFIG_SLIP is not set +CONFIG_SLHC=m +CONFIG_USB_NET_DRIVERS=y +# CONFIG_USB_CATC is not set +# CONFIG_USB_KAWETH is not set +# CONFIG_USB_PEGASUS is not set +# CONFIG_USB_RTL8150 is not set +# CONFIG_USB_RTL8152 is not set +# CONFIG_USB_LAN78XX is not set +CONFIG_USB_USBNET=y +CONFIG_USB_NET_AX8817X=y +# CONFIG_USB_NET_AX88179_178A is not set +# CONFIG_USB_NET_CDCETHER is not set +# CONFIG_USB_NET_CDC_EEM is not set +# CONFIG_USB_NET_CDC_NCM is not set +# CONFIG_USB_NET_HUAWEI_CDC_NCM is not set +# CONFIG_USB_NET_CDC_MBIM is not set +# CONFIG_USB_NET_DM9601 is not set +# CONFIG_USB_NET_SR9700 is not set +# CONFIG_USB_NET_SR9800 is not set +# CONFIG_USB_NET_SMSC75XX is not set +# CONFIG_USB_NET_SMSC95XX is not set +# CONFIG_USB_NET_GL620A is not set +# CONFIG_USB_NET_NET1080 is not set +# CONFIG_USB_NET_PLUSB is not set +CONFIG_USB_NET_MCS7830=y +# CONFIG_USB_NET_RNDIS_HOST is not set +# CONFIG_USB_NET_CDC_SUBSET is not set +# CONFIG_USB_NET_ZAURUS is not set +# CONFIG_USB_NET_CX82310_ETH is not set +# CONFIG_USB_NET_KALMIA is not set +# CONFIG_USB_NET_QMI_WWAN is not set +# CONFIG_USB_HSO is not set +# CONFIG_USB_NET_INT51X1 is not set +# CONFIG_USB_IPHETH is not set +# CONFIG_USB_SIERRA_NET is not set +# CONFIG_USB_NET_CH9200 is not set +CONFIG_WLAN=y +# CONFIG_WIRELESS_WDS is not set +CONFIG_WLAN_VENDOR_ADMTEK=y +# CONFIG_ADM8211 is not set +CONFIG_ATH_COMMON=m +CONFIG_WLAN_VENDOR_ATH=y +# CONFIG_ATH_DEBUG is not set +# CONFIG_ATH5K is not set +# CONFIG_ATH5K_PCI is not set +CONFIG_ATH9K_HW=m +CONFIG_ATH9K_COMMON=m +CONFIG_ATH9K_BTCOEX_SUPPORT=y +CONFIG_ATH9K=m +CONFIG_ATH9K_PCI=y +# CONFIG_ATH9K_AHB is not set +# CONFIG_ATH9K_DEBUGFS is not set +# CONFIG_ATH9K_DYNACK is not set +# CONFIG_ATH9K_WOW is not set +CONFIG_ATH9K_RFKILL=y +# CONFIG_ATH9K_CHANNEL_CONTEXT is not set +CONFIG_ATH9K_PCOEM=y +CONFIG_ATH9K_HTC=m +# CONFIG_ATH9K_HTC_DEBUGFS is not set +CONFIG_ATH9K_HWRNG=y +CONFIG_CARL9170=m +CONFIG_CARL9170_LEDS=y +CONFIG_CARL9170_WPC=y +# CONFIG_CARL9170_HWRNG is not set +CONFIG_ATH6KL=m +# CONFIG_ATH6KL_SDIO is not set +CONFIG_ATH6KL_USB=m +# CONFIG_ATH6KL_DEBUG is not set +CONFIG_AR5523=m +# CONFIG_WIL6210 is not set +CONFIG_ATH10K=m +# CONFIG_ATH10K_PCI is not set +# CONFIG_ATH10K_DEBUG is not set +# CONFIG_ATH10K_DEBUGFS is not set +# CONFIG_WCN36XX is not set +CONFIG_WLAN_VENDOR_ATMEL=y +# CONFIG_ATMEL is not set +CONFIG_AT76C50X_USB=m +CONFIG_WLAN_VENDOR_BROADCOM=y +# CONFIG_B43 is not set +# CONFIG_B43LEGACY is not set +CONFIG_BRCMUTIL=m +# CONFIG_BRCMSMAC is not set +CONFIG_BRCMFMAC=m +CONFIG_BRCMFMAC_PROTO_BCDC=y +CONFIG_BRCMFMAC_SDIO=y +# CONFIG_BRCMFMAC_USB is not set +# CONFIG_BRCMFMAC_PCIE is not set +# CONFIG_BRCM_TRACING is not set +# CONFIG_BRCMDBG is not set +CONFIG_WLAN_VENDOR_CISCO=y +CONFIG_WLAN_VENDOR_INTEL=y +# CONFIG_IPW2100 is not set +# CONFIG_IPW2200 is not set +# CONFIG_IWL4965 is not set +# CONFIG_IWL3945 is not set +# CONFIG_IWLWIFI is not set +CONFIG_WLAN_VENDOR_INTERSIL=y +CONFIG_HOSTAP=m +CONFIG_HOSTAP_FIRMWARE=y +# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set +# CONFIG_HOSTAP_PLX is not set +# CONFIG_HOSTAP_PCI is not set +# CONFIG_HERMES is not set +CONFIG_P54_COMMON=m +# CONFIG_P54_USB is not set +# CONFIG_P54_PCI is not set +# CONFIG_P54_SPI is not set +CONFIG_P54_LEDS=y +# CONFIG_PRISM54 is not set +CONFIG_WLAN_VENDOR_MARVELL=y +CONFIG_LIBERTAS=m +# CONFIG_LIBERTAS_USB is not set +# CONFIG_LIBERTAS_SDIO is not set +# CONFIG_LIBERTAS_SPI is not set +# CONFIG_LIBERTAS_DEBUG is not set +# CONFIG_LIBERTAS_MESH is not set +CONFIG_LIBERTAS_THINFIRM=m +# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set +CONFIG_LIBERTAS_THINFIRM_USB=m +CONFIG_MWIFIEX=m +# CONFIG_MWIFIEX_SDIO is not set +# CONFIG_MWIFIEX_PCIE is not set +CONFIG_MWIFIEX_USB=m +# CONFIG_MWL8K is not set +CONFIG_WLAN_VENDOR_MEDIATEK=y +CONFIG_MT7601U=m +CONFIG_WLAN_VENDOR_RALINK=y +CONFIG_RT2X00=m +# CONFIG_RT2400PCI is not set +# CONFIG_RT2500PCI is not set +# CONFIG_RT61PCI is not set +# CONFIG_RT2800PCI is not set +CONFIG_RT2500USB=m +CONFIG_RT73USB=m +CONFIG_RT2800USB=m +CONFIG_RT2800USB_RT33XX=y +CONFIG_RT2800USB_RT35XX=y +CONFIG_RT2800USB_RT3573=y +CONFIG_RT2800USB_RT53XX=y +CONFIG_RT2800USB_RT55XX=y +CONFIG_RT2800USB_UNKNOWN=y +CONFIG_RT2800_LIB=m +CONFIG_RT2X00_LIB_USB=m +CONFIG_RT2X00_LIB=m +CONFIG_RT2X00_LIB_FIRMWARE=y +CONFIG_RT2X00_LIB_CRYPTO=y +CONFIG_RT2X00_LIB_LEDS=y +# CONFIG_RT2X00_DEBUG is not set +CONFIG_WLAN_VENDOR_REALTEK=y +# CONFIG_RTL8180 is not set +CONFIG_RTL8187=m +CONFIG_RTL8187_LEDS=y +CONFIG_RTL_CARDS=m +# CONFIG_RTL8192CE is not set +# CONFIG_RTL8192SE is not set +# CONFIG_RTL8192DE is not set +# CONFIG_RTL8723AE is not set +# CONFIG_RTL8723BE is not set +# CONFIG_RTL8188EE is not set +# CONFIG_RTL8192EE is not set +# CONFIG_RTL8821AE is not set +CONFIG_RTL8192CU=m +CONFIG_RTLWIFI=m +CONFIG_RTLWIFI_USB=m +CONFIG_RTLWIFI_DEBUG=y +CONFIG_RTL8192C_COMMON=m +CONFIG_RTL8XXXU=m +CONFIG_RTL8XXXU_UNTESTED=y +CONFIG_WLAN_VENDOR_RSI=y +CONFIG_RSI_91X=m +CONFIG_RSI_DEBUGFS=y +# CONFIG_RSI_SDIO is not set +CONFIG_RSI_USB=m +CONFIG_WLAN_VENDOR_ST=y +CONFIG_CW1200=m +# CONFIG_CW1200_WLAN_SDIO is not set +# CONFIG_CW1200_WLAN_SPI is not set +CONFIG_WLAN_VENDOR_TI=y +CONFIG_WL1251=m +# CONFIG_WL1251_SPI is not set +# CONFIG_WL1251_SDIO is not set +CONFIG_WL12XX=m +CONFIG_WL18XX=m +CONFIG_WLCORE=m +# CONFIG_WLCORE_SPI is not set +# CONFIG_WLCORE_SDIO is not set +CONFIG_WLAN_VENDOR_ZYDAS=y +CONFIG_USB_ZD1201=m +CONFIG_ZD1211RW=m +# CONFIG_ZD1211RW_DEBUG is not set +# CONFIG_MAC80211_HWSIM is not set +# CONFIG_USB_NET_RNDIS_WLAN is not set + +# +# Enable WiMAX (Networking options) to see the WiMAX drivers +# +# CONFIG_WAN is not set +# CONFIG_VMXNET3 is not set +# CONFIG_ISDN is not set +# CONFIG_NVM is not set + +# +# Input device support +# +CONFIG_INPUT=y +CONFIG_INPUT_LEDS=m +# CONFIG_INPUT_FF_MEMLESS is not set +# CONFIG_INPUT_POLLDEV is not set +# CONFIG_INPUT_SPARSEKMAP is not set +# CONFIG_INPUT_MATRIXKMAP is not set + +# +# Userland interfaces +# +CONFIG_INPUT_MOUSEDEV=y +CONFIG_INPUT_MOUSEDEV_PSAUX=y +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +# CONFIG_INPUT_JOYDEV is not set +CONFIG_INPUT_EVDEV=y +# CONFIG_INPUT_EVBUG is not set + +# +# Input Device Drivers +# +CONFIG_INPUT_KEYBOARD=y +# CONFIG_KEYBOARD_ADP5588 is not set +# CONFIG_KEYBOARD_ADP5589 is not set +CONFIG_KEYBOARD_ATKBD=y +# CONFIG_KEYBOARD_QT1070 is not set +# CONFIG_KEYBOARD_QT2160 is not set +# CONFIG_KEYBOARD_LKKBD is not set +# CONFIG_KEYBOARD_TCA6416 is not set +# CONFIG_KEYBOARD_TCA8418 is not set +# CONFIG_KEYBOARD_LM8323 is not set +# CONFIG_KEYBOARD_LM8333 is not set +# CONFIG_KEYBOARD_MAX7359 is not set +# CONFIG_KEYBOARD_MCS is not set +# CONFIG_KEYBOARD_MPR121 is not set +# CONFIG_KEYBOARD_NEWTON is not set +# CONFIG_KEYBOARD_OPENCORES is not set +# CONFIG_KEYBOARD_SAMSUNG is not set +# CONFIG_KEYBOARD_STOWAWAY is not set +# CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_OMAP4 is not set +# CONFIG_KEYBOARD_XTKBD is not set +# CONFIG_KEYBOARD_CAP11XX is not set +# CONFIG_KEYBOARD_BCM is not set +CONFIG_INPUT_MOUSE=y +CONFIG_MOUSE_PS2=y +CONFIG_MOUSE_PS2_ALPS=y +CONFIG_MOUSE_PS2_BYD=y +CONFIG_MOUSE_PS2_LOGIPS2PP=y +CONFIG_MOUSE_PS2_SYNAPTICS=y +CONFIG_MOUSE_PS2_CYPRESS=y +CONFIG_MOUSE_PS2_TRACKPOINT=y +CONFIG_MOUSE_PS2_ELANTECH=y +# CONFIG_MOUSE_PS2_SENTELIC is not set +# CONFIG_MOUSE_PS2_TOUCHKIT is not set +# CONFIG_MOUSE_PS2_FOCALTECH is not set +# CONFIG_MOUSE_SERIAL is not set +# CONFIG_MOUSE_APPLETOUCH is not set +# CONFIG_MOUSE_BCM5974 is not set +# CONFIG_MOUSE_CYAPA is not set +# CONFIG_MOUSE_ELAN_I2C is not set +# CONFIG_MOUSE_VSXXXAA is not set +# CONFIG_MOUSE_SYNAPTICS_I2C is not set +# CONFIG_MOUSE_SYNAPTICS_USB is not set +# CONFIG_INPUT_JOYSTICK is not set +# CONFIG_INPUT_TABLET is not set +# CONFIG_INPUT_TOUCHSCREEN is not set +CONFIG_INPUT_MISC=y +# CONFIG_INPUT_AD714X is not set +# CONFIG_INPUT_ATMEL_CAPTOUCH is not set +# CONFIG_INPUT_BMA150 is not set +# CONFIG_INPUT_E3X0_BUTTON is not set +# CONFIG_INPUT_MMA8450 is not set +CONFIG_INPUT_MPU3050=y +# CONFIG_INPUT_ATI_REMOTE2 is not set +# CONFIG_INPUT_KEYSPAN_REMOTE is not set +# CONFIG_INPUT_KXTJ9 is not set +# CONFIG_INPUT_POWERMATE is not set +# CONFIG_INPUT_YEALINK is not set +# CONFIG_INPUT_CM109 is not set +# CONFIG_INPUT_REGULATOR_HAPTIC is not set +CONFIG_INPUT_UINPUT=y +# CONFIG_INPUT_PCF8574 is not set +# CONFIG_INPUT_ADXL34X is not set +# CONFIG_INPUT_IMS_PCU is not set +# CONFIG_INPUT_CMA3000 is not set +# CONFIG_INPUT_DRV2665_HAPTICS is not set +# CONFIG_INPUT_DRV2667_HAPTICS is not set +# CONFIG_RMI4_CORE is not set + +# +# Hardware I/O ports +# +CONFIG_SERIO=y +# CONFIG_SERIO_SERPORT is not set +# CONFIG_SERIO_PCIPS2 is not set +CONFIG_SERIO_LIBPS2=y +# CONFIG_SERIO_RAW is not set +# CONFIG_SERIO_ALTERA_PS2 is not set +# CONFIG_SERIO_PS2MULT is not set +# CONFIG_SERIO_ARC_PS2 is not set +# CONFIG_SERIO_APBPS2 is not set +# CONFIG_USERIO is not set +# CONFIG_GAMEPORT is not set + +# +# Character devices +# +CONFIG_TTY=y +CONFIG_VT=y +CONFIG_CONSOLE_TRANSLATIONS=y +CONFIG_VT_CONSOLE=y +CONFIG_VT_CONSOLE_SLEEP=y +CONFIG_HW_CONSOLE=y +CONFIG_VT_HW_CONSOLE_BINDING=y +CONFIG_UNIX98_PTYS=y +CONFIG_LEGACY_PTYS=y +CONFIG_LEGACY_PTY_COUNT=256 +# CONFIG_SERIAL_NONSTANDARD is not set +# CONFIG_NOZOMI is not set +# CONFIG_N_GSM is not set +# CONFIG_TRACE_SINK is not set +CONFIG_DEVMEM=y +CONFIG_DEVKMEM=y + +# +# Serial drivers +# +CONFIG_SERIAL_EARLYCON=y +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y +# CONFIG_SERIAL_8250_FINTEK is not set +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_PCI=y +CONFIG_SERIAL_8250_NR_UARTS=4 +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +# CONFIG_SERIAL_8250_EXTENDED is not set +CONFIG_SERIAL_8250_FSL=y +CONFIG_SERIAL_8250_DW=y +# CONFIG_SERIAL_8250_EM is not set +# CONFIG_SERIAL_8250_RT288X is not set +# CONFIG_SERIAL_8250_MOXA is not set +CONFIG_SERIAL_OF_PLATFORM=y + +# +# Non-8250 serial port support +# +# CONFIG_SERIAL_EARLYCON_ARM_SEMIHOST is not set +# CONFIG_SERIAL_MAX3100 is not set +# CONFIG_SERIAL_MAX310X is not set +# CONFIG_SERIAL_UARTLITE is not set +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +# CONFIG_SERIAL_JSM is not set +# CONFIG_SERIAL_SCCNXP is not set +# CONFIG_SERIAL_SC16IS7XX is not set +# CONFIG_SERIAL_BCM63XX is not set +# CONFIG_SERIAL_ALTERA_JTAGUART is not set +# CONFIG_SERIAL_ALTERA_UART is not set +# CONFIG_SERIAL_XILINX_PS_UART is not set +# CONFIG_SERIAL_ARC is not set +# CONFIG_SERIAL_RP2 is not set +# CONFIG_SERIAL_FSL_LPUART is not set +# CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set +# CONFIG_SERIAL_ST_ASC is not set +# CONFIG_TTY_PRINTK is not set +# CONFIG_HVC_DCC is not set +# CONFIG_IPMI_HANDLER is not set +CONFIG_HW_RANDOM=y +# CONFIG_HW_RANDOM_TIMERIOMEM is not set +# CONFIG_R3964 is not set +# CONFIG_APPLICOM is not set +# CONFIG_RAW_DRIVER is not set +# CONFIG_TCG_TPM is not set +CONFIG_DEVPORT=y +# CONFIG_XILLYBUS is not set + +# +# I2C support +# +CONFIG_I2C=y +CONFIG_I2C_BOARDINFO=y +CONFIG_I2C_COMPAT=y +CONFIG_I2C_CHARDEV=y +CONFIG_I2C_MUX=y + +# +# Multiplexer I2C Chip support +# +# CONFIG_I2C_MUX_PCA9541 is not set +# CONFIG_I2C_MUX_REG is not set +# CONFIG_I2C_MUX_MLXCPLD is not set +CONFIG_I2C_HELPER_AUTO=y +CONFIG_I2C_ALGOBIT=m + +# +# I2C Hardware Bus support +# + +# +# PC SMBus host controller drivers +# +# CONFIG_I2C_ALI1535 is not set +# CONFIG_I2C_ALI1563 is not set +# CONFIG_I2C_ALI15X3 is not set +# CONFIG_I2C_AMD756 is not set +# CONFIG_I2C_AMD8111 is not set +# CONFIG_I2C_I801 is not set +# CONFIG_I2C_ISCH is not set +# CONFIG_I2C_PIIX4 is not set +# CONFIG_I2C_NFORCE2 is not set +# CONFIG_I2C_SIS5595 is not set +# CONFIG_I2C_SIS630 is not set +# CONFIG_I2C_SIS96X is not set +# CONFIG_I2C_VIA is not set +# CONFIG_I2C_VIAPRO is not set + +# +# I2C system bus drivers (mostly embedded / system-on-chip) +# +CONFIG_I2C_BRCMSTB=y +# CONFIG_I2C_DESIGNWARE_PLATFORM is not set +# CONFIG_I2C_DESIGNWARE_PCI is not set +# CONFIG_I2C_EMEV2 is not set +# CONFIG_I2C_OCORES is not set +# CONFIG_I2C_PCA_PLATFORM is not set +# CONFIG_I2C_PXA_PCI is not set +# CONFIG_I2C_RK3X is not set +# CONFIG_I2C_SIMTEC is not set +# CONFIG_I2C_XILINX is not set + +# +# External I2C/SMBus adapter drivers +# +# CONFIG_I2C_DIOLAN_U2C is not set +# CONFIG_I2C_PARPORT_LIGHT is not set +# CONFIG_I2C_ROBOTFUZZ_OSIF is not set +# CONFIG_I2C_TAOS_EVM is not set +# CONFIG_I2C_TINY_USB is not set + +# +# Other I2C/SMBus bus drivers +# +# CONFIG_I2C_STUB is not set +# CONFIG_I2C_SLAVE is not set +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +CONFIG_SPI=y +# CONFIG_SPI_DEBUG is not set +CONFIG_SPI_MASTER=y + +# +# SPI Master Controller Drivers +# +# CONFIG_SPI_ALTERA is not set +# CONFIG_SPI_AXI_SPI_ENGINE is not set +# CONFIG_SPI_BCM_QSPI is not set +CONFIG_SPI_BITBANG=y +# CONFIG_SPI_CADENCE is not set +# CONFIG_SPI_DESIGNWARE is not set +# CONFIG_SPI_FSL_SPI is not set +# CONFIG_SPI_PXA2XX is not set +# CONFIG_SPI_PXA2XX_PCI is not set +# CONFIG_SPI_ROCKCHIP is not set +# CONFIG_SPI_SC18IS602 is not set +# CONFIG_SPI_XCOMM is not set +# CONFIG_SPI_XILINX is not set +# CONFIG_SPI_ZYNQMP_GQSPI is not set + +# +# SPI Protocol Masters +# +# CONFIG_SPI_SPIDEV is not set +# CONFIG_SPI_LOOPBACK_TEST is not set +# CONFIG_SPI_TLE62X0 is not set +# CONFIG_SPMI is not set +# CONFIG_HSI is not set + +# +# PPS support +# +CONFIG_PPS=y +# CONFIG_PPS_DEBUG is not set + +# +# PPS clients support +# +# CONFIG_PPS_CLIENT_KTIMER is not set +# CONFIG_PPS_CLIENT_LDISC is not set +# CONFIG_PPS_CLIENT_GPIO is not set + +# +# PPS generators support +# + +# +# PTP clock support +# +CONFIG_PTP_1588_CLOCK=y + +# +# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks. +# +CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y +# CONFIG_GPIOLIB is not set +# CONFIG_W1 is not set +# CONFIG_POWER_AVS is not set +CONFIG_POWER_RESET=y +# CONFIG_POWER_RESET_BRCMKONA is not set +CONFIG_POWER_RESET_BRCMSTB=y +# CONFIG_POWER_RESET_RESTART is not set +# CONFIG_POWER_RESET_VERSATILE is not set +# CONFIG_POWER_RESET_SYSCON is not set +# CONFIG_POWER_RESET_SYSCON_POWEROFF is not set +# CONFIG_SYSCON_REBOOT_MODE is not set +CONFIG_POWER_SUPPLY=y +# CONFIG_POWER_SUPPLY_DEBUG is not set +# CONFIG_PDA_POWER is not set +# CONFIG_TEST_POWER is not set +# CONFIG_BATTERY_DS2780 is not set +# CONFIG_BATTERY_DS2781 is not set +# CONFIG_BATTERY_DS2782 is not set +# CONFIG_BATTERY_SBS is not set +# CONFIG_BATTERY_BQ27XXX is not set +# CONFIG_BATTERY_MAX17040 is not set +# CONFIG_BATTERY_MAX17042 is not set +# CONFIG_CHARGER_MAX8903 is not set +# CONFIG_CHARGER_LP8727 is not set +# CONFIG_CHARGER_MANAGER is not set +# CONFIG_CHARGER_BQ2415X is not set +# CONFIG_CHARGER_SMB347 is not set +# CONFIG_BATTERY_GAUGE_LTC2941 is not set +# CONFIG_HWMON is not set +CONFIG_THERMAL=y +CONFIG_THERMAL_OF=y +# CONFIG_THERMAL_WRITABLE_TRIPS is not set +CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y +# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set +# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set +# CONFIG_THERMAL_DEFAULT_GOV_POWER_ALLOCATOR is not set +# CONFIG_THERMAL_GOV_FAIR_SHARE is not set +CONFIG_THERMAL_GOV_STEP_WISE=y +# CONFIG_THERMAL_GOV_BANG_BANG is not set +# CONFIG_THERMAL_GOV_USER_SPACE is not set +# CONFIG_THERMAL_GOV_POWER_ALLOCATOR is not set +CONFIG_CPU_THERMAL=y +# CONFIG_CLOCK_THERMAL is not set +# CONFIG_THERMAL_EMULATION is not set +# CONFIG_QORIQ_THERMAL is not set + +# +# ACPI INT340X thermal drivers +# +# CONFIG_WATCHDOG is not set +CONFIG_SSB_POSSIBLE=y + +# +# Sonics Silicon Backplane +# +# CONFIG_SSB is not set +CONFIG_BCMA_POSSIBLE=y + +# +# Broadcom specific AMBA +# +# CONFIG_BCMA is not set + +# +# Multifunction device drivers +# +CONFIG_MFD_CORE=m +# CONFIG_MFD_ACT8945A is not set +# CONFIG_MFD_AS3711 is not set +# CONFIG_MFD_AS3722 is not set +# CONFIG_PMIC_ADP5520 is not set +# CONFIG_MFD_ATMEL_FLEXCOM is not set +# CONFIG_MFD_ATMEL_HLCDC is not set +# CONFIG_MFD_BCM590XX is not set +# CONFIG_MFD_AXP20X_I2C is not set +# CONFIG_MFD_CROS_EC is not set +# CONFIG_PMIC_DA903X is not set +# CONFIG_MFD_DA9052_SPI is not set +# CONFIG_MFD_DA9052_I2C is not set +# CONFIG_MFD_DA9055 is not set +# CONFIG_MFD_DA9062 is not set +# CONFIG_MFD_DA9063 is not set +# CONFIG_MFD_DA9150 is not set +# CONFIG_MFD_DLN2 is not set +# CONFIG_MFD_MC13XXX_SPI is not set +# CONFIG_MFD_MC13XXX_I2C is not set +# CONFIG_MFD_HI6421_PMIC is not set +# CONFIG_HTC_PASIC3 is not set +# CONFIG_LPC_ICH is not set +# CONFIG_LPC_SCH is not set +# CONFIG_MFD_JANZ_CMODIO is not set +# CONFIG_MFD_KEMPLD is not set +# CONFIG_MFD_88PM800 is not set +# CONFIG_MFD_88PM805 is not set +# CONFIG_MFD_88PM860X is not set +# CONFIG_MFD_MAX14577 is not set +# CONFIG_MFD_MAX77620 is not set +# CONFIG_MFD_MAX77686 is not set +# CONFIG_MFD_MAX77693 is not set +# CONFIG_MFD_MAX77843 is not set +# CONFIG_MFD_MAX8907 is not set +# CONFIG_MFD_MAX8925 is not set +# CONFIG_MFD_MAX8997 is not set +# CONFIG_MFD_MAX8998 is not set +# CONFIG_MFD_MT6397 is not set +# CONFIG_MFD_MENF21BMC is not set +# CONFIG_EZX_PCAP is not set +# CONFIG_MFD_VIPERBOARD is not set +# CONFIG_MFD_RETU is not set +# CONFIG_MFD_PCF50633 is not set +# CONFIG_MFD_PM8XXX is not set +# CONFIG_MFD_RDC321X is not set +# CONFIG_MFD_RTSX_PCI is not set +# CONFIG_MFD_RT5033 is not set +# CONFIG_MFD_RTSX_USB is not set +# CONFIG_MFD_RC5T583 is not set +# CONFIG_MFD_RK808 is not set +# CONFIG_MFD_RN5T618 is not set +# CONFIG_MFD_SEC_CORE is not set +# CONFIG_MFD_SI476X_CORE is not set +# CONFIG_MFD_SM501 is not set +# CONFIG_MFD_SKY81452 is not set +# CONFIG_MFD_SMSC is not set +# CONFIG_ABX500_CORE is not set +# CONFIG_MFD_STMPE is not set +CONFIG_MFD_SYSCON=y +# CONFIG_MFD_TI_AM335X_TSCADC is not set +# CONFIG_MFD_LP3943 is not set +# CONFIG_MFD_LP8788 is not set +# CONFIG_MFD_PALMAS is not set +# CONFIG_TPS6105X is not set +# CONFIG_TPS6507X is not set +# CONFIG_MFD_TPS65086 is not set +# CONFIG_MFD_TPS65090 is not set +# CONFIG_MFD_TPS65217 is not set +# CONFIG_MFD_TI_LP873X is not set +# CONFIG_MFD_TPS65218 is not set +# CONFIG_MFD_TPS6586X is not set +# CONFIG_MFD_TPS65912_I2C is not set +# CONFIG_MFD_TPS65912_SPI is not set +# CONFIG_MFD_TPS80031 is not set +# CONFIG_TWL4030_CORE is not set +# CONFIG_TWL6040_CORE is not set +CONFIG_MFD_WL1273_CORE=m +# CONFIG_MFD_LM3533 is not set +# CONFIG_MFD_TC3589X is not set +# CONFIG_MFD_TMIO is not set +# CONFIG_MFD_T7L66XB is not set +# CONFIG_MFD_TC6387XB is not set +# CONFIG_MFD_TC6393XB is not set +# CONFIG_MFD_VX855 is not set +# CONFIG_MFD_ARIZONA_I2C is not set +# CONFIG_MFD_ARIZONA_SPI is not set +# CONFIG_MFD_WM8400 is not set +# CONFIG_MFD_WM831X_I2C is not set +# CONFIG_MFD_WM831X_SPI is not set +# CONFIG_MFD_WM8350_I2C is not set +# CONFIG_MFD_WM8994 is not set +CONFIG_REGULATOR=y +# CONFIG_REGULATOR_DEBUG is not set +# CONFIG_REGULATOR_FIXED_VOLTAGE is not set +# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set +# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set +# CONFIG_REGULATOR_ACT8865 is not set +# CONFIG_REGULATOR_AD5398 is not set +# CONFIG_REGULATOR_ANATOP is not set +# CONFIG_REGULATOR_DA9210 is not set +# CONFIG_REGULATOR_DA9211 is not set +# CONFIG_REGULATOR_FAN53555 is not set +# CONFIG_REGULATOR_ISL9305 is not set +# CONFIG_REGULATOR_ISL6271A is not set +# CONFIG_REGULATOR_LP3971 is not set +# CONFIG_REGULATOR_LP3972 is not set +# CONFIG_REGULATOR_LP872X is not set +# CONFIG_REGULATOR_LP8755 is not set +# CONFIG_REGULATOR_LTC3589 is not set +# CONFIG_REGULATOR_LTC3676 is not set +# CONFIG_REGULATOR_MAX1586 is not set +# CONFIG_REGULATOR_MAX8649 is not set +# CONFIG_REGULATOR_MAX8660 is not set +# CONFIG_REGULATOR_MAX8952 is not set +# CONFIG_REGULATOR_MAX8973 is not set +# CONFIG_REGULATOR_MT6311 is not set +# CONFIG_REGULATOR_PFUZE100 is not set +# CONFIG_REGULATOR_PV88060 is not set +# CONFIG_REGULATOR_PV88080 is not set +# CONFIG_REGULATOR_PV88090 is not set +# CONFIG_REGULATOR_TPS51632 is not set +# CONFIG_REGULATOR_TPS62360 is not set +# CONFIG_REGULATOR_TPS65023 is not set +# CONFIG_REGULATOR_TPS6507X is not set +# CONFIG_REGULATOR_TPS6524X is not set +CONFIG_MEDIA_SUPPORT=y + +# +# Multimedia core support +# +CONFIG_MEDIA_CAMERA_SUPPORT=y +CONFIG_MEDIA_ANALOG_TV_SUPPORT=y +CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y +CONFIG_MEDIA_RADIO_SUPPORT=y +# CONFIG_MEDIA_SDR_SUPPORT is not set +CONFIG_MEDIA_RC_SUPPORT=y +CONFIG_MEDIA_CEC_SUPPORT=y +CONFIG_MEDIA_CEC_DEBUG=y +CONFIG_MEDIA_CEC_EDID=y +# CONFIG_MEDIA_CONTROLLER is not set +CONFIG_VIDEO_DEV=y +CONFIG_VIDEO_V4L2=y +# CONFIG_VIDEO_ADV_DEBUG is not set +# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set +CONFIG_VIDEO_TUNER=m +CONFIG_VIDEOBUF_GEN=m +CONFIG_VIDEOBUF_VMALLOC=m +CONFIG_VIDEOBUF_DVB=m +CONFIG_VIDEOBUF2_CORE=m +CONFIG_VIDEOBUF2_MEMOPS=m +CONFIG_VIDEOBUF2_VMALLOC=m +CONFIG_DVB_CORE=y +CONFIG_DVB_NET=y +CONFIG_TTPCI_EEPROM=m +CONFIG_DVB_MAX_ADAPTERS=8 +CONFIG_DVB_DYNAMIC_MINORS=y +# CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set + +# +# Media drivers +# +CONFIG_RC_CORE=y +CONFIG_RC_MAP=y +CONFIG_RC_DECODERS=y +# CONFIG_LIRC is not set +CONFIG_IR_NEC_DECODER=y +CONFIG_IR_RC5_DECODER=y +CONFIG_IR_RC6_DECODER=y +CONFIG_IR_JVC_DECODER=y +CONFIG_IR_SONY_DECODER=y +CONFIG_IR_SANYO_DECODER=y +CONFIG_IR_SHARP_DECODER=y +CONFIG_IR_MCE_KBD_DECODER=y +CONFIG_IR_XMP_DECODER=y +# CONFIG_RC_DEVICES is not set +CONFIG_MEDIA_USB_SUPPORT=y + +# +# Webcam devices +# +CONFIG_USB_VIDEO_CLASS=m +CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y +CONFIG_USB_GSPCA=m +CONFIG_USB_M5602=m +CONFIG_USB_STV06XX=m +CONFIG_USB_GL860=m +CONFIG_USB_GSPCA_BENQ=m +CONFIG_USB_GSPCA_CONEX=m +CONFIG_USB_GSPCA_CPIA1=m +# CONFIG_USB_GSPCA_DTCS033 is not set +CONFIG_USB_GSPCA_ETOMS=m +CONFIG_USB_GSPCA_FINEPIX=m +CONFIG_USB_GSPCA_JEILINJ=m +CONFIG_USB_GSPCA_JL2005BCD=m +CONFIG_USB_GSPCA_KINECT=m +CONFIG_USB_GSPCA_KONICA=m +CONFIG_USB_GSPCA_MARS=m +CONFIG_USB_GSPCA_MR97310A=m +CONFIG_USB_GSPCA_NW80X=m +CONFIG_USB_GSPCA_OV519=m +CONFIG_USB_GSPCA_OV534=m +CONFIG_USB_GSPCA_OV534_9=m +CONFIG_USB_GSPCA_PAC207=m +CONFIG_USB_GSPCA_PAC7302=m +CONFIG_USB_GSPCA_PAC7311=m +CONFIG_USB_GSPCA_SE401=m +CONFIG_USB_GSPCA_SN9C2028=m +CONFIG_USB_GSPCA_SN9C20X=m +CONFIG_USB_GSPCA_SONIXB=m +CONFIG_USB_GSPCA_SONIXJ=m +CONFIG_USB_GSPCA_SPCA500=m +CONFIG_USB_GSPCA_SPCA501=m +CONFIG_USB_GSPCA_SPCA505=m +CONFIG_USB_GSPCA_SPCA506=m +CONFIG_USB_GSPCA_SPCA508=m +CONFIG_USB_GSPCA_SPCA561=m +CONFIG_USB_GSPCA_SPCA1528=m +CONFIG_USB_GSPCA_SQ905=m +CONFIG_USB_GSPCA_SQ905C=m +CONFIG_USB_GSPCA_SQ930X=m +CONFIG_USB_GSPCA_STK014=m +# CONFIG_USB_GSPCA_STK1135 is not set +CONFIG_USB_GSPCA_STV0680=m +CONFIG_USB_GSPCA_SUNPLUS=m +CONFIG_USB_GSPCA_T613=m +CONFIG_USB_GSPCA_TOPRO=m +# CONFIG_USB_GSPCA_TOUPTEK is not set +CONFIG_USB_GSPCA_TV8532=m +CONFIG_USB_GSPCA_VC032X=m +CONFIG_USB_GSPCA_VICAM=m +CONFIG_USB_GSPCA_XIRLINK_CIT=m +CONFIG_USB_GSPCA_ZC3XX=m +CONFIG_USB_PWC=m +# CONFIG_USB_PWC_DEBUG is not set +CONFIG_USB_PWC_INPUT_EVDEV=y +CONFIG_VIDEO_CPIA2=m +CONFIG_USB_ZR364XX=m +CONFIG_USB_STKWEBCAM=m +CONFIG_USB_S2255=m +# CONFIG_VIDEO_USBTV is not set + +# +# Analog TV USB devices +# +CONFIG_VIDEO_PVRUSB2=m +CONFIG_VIDEO_PVRUSB2_SYSFS=y +CONFIG_VIDEO_PVRUSB2_DVB=y +# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set +CONFIG_VIDEO_HDPVR=m +CONFIG_VIDEO_USBVISION=m +# CONFIG_VIDEO_STK1160_COMMON is not set +# CONFIG_VIDEO_GO7007 is not set + +# +# Analog/digital TV USB devices +# +CONFIG_VIDEO_AU0828=m +# CONFIG_VIDEO_AU0828_V4L2 is not set +# CONFIG_VIDEO_AU0828_RC is not set +CONFIG_VIDEO_CX231XX=m +# CONFIG_VIDEO_CX231XX_RC is not set +CONFIG_VIDEO_CX231XX_ALSA=m +CONFIG_VIDEO_CX231XX_DVB=m +CONFIG_VIDEO_TM6000=m +CONFIG_VIDEO_TM6000_ALSA=m +CONFIG_VIDEO_TM6000_DVB=m + +# +# Digital TV USB devices +# +CONFIG_DVB_USB=m +# CONFIG_DVB_USB_DEBUG is not set +CONFIG_DVB_USB_DIB3000MC=m +CONFIG_DVB_USB_A800=m +CONFIG_DVB_USB_DIBUSB_MB=m +CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y +CONFIG_DVB_USB_DIBUSB_MC=m +CONFIG_DVB_USB_DIB0700=m +CONFIG_DVB_USB_UMT_010=m +CONFIG_DVB_USB_CXUSB=m +CONFIG_DVB_USB_M920X=m +CONFIG_DVB_USB_DIGITV=m +CONFIG_DVB_USB_VP7045=m +CONFIG_DVB_USB_VP702X=m +CONFIG_DVB_USB_GP8PSK=m +CONFIG_DVB_USB_NOVA_T_USB2=m +CONFIG_DVB_USB_TTUSB2=m +CONFIG_DVB_USB_DTT200U=m +CONFIG_DVB_USB_OPERA1=m +CONFIG_DVB_USB_AF9005=m +# CONFIG_DVB_USB_AF9005_REMOTE is not set +CONFIG_DVB_USB_PCTV452E=m +CONFIG_DVB_USB_DW2102=m +CONFIG_DVB_USB_CINERGY_T2=m +CONFIG_DVB_USB_DTV5100=m +CONFIG_DVB_USB_FRIIO=m +CONFIG_DVB_USB_AZ6027=m +CONFIG_DVB_USB_TECHNISAT_USB2=m +CONFIG_DVB_USB_TBS=m +CONFIG_DVB_USB_V2=m +CONFIG_DVB_USB_AF9015=m +CONFIG_DVB_USB_AF9035=m +CONFIG_DVB_USB_ANYSEE=m +CONFIG_DVB_USB_AU6610=m +CONFIG_DVB_USB_AZ6007=m +CONFIG_DVB_USB_CE6230=m +CONFIG_DVB_USB_EC168=m +CONFIG_DVB_USB_GL861=m +CONFIG_DVB_USB_LME2510=m +CONFIG_DVB_USB_MXL111SF=m +CONFIG_DVB_USB_RTL28XXU=m +CONFIG_DVB_USB_DVBSKY=m +# CONFIG_DVB_TTUSB_BUDGET is not set +# CONFIG_DVB_TTUSB_DEC is not set +CONFIG_SMS_USB_DRV=m +CONFIG_DVB_B2C2_FLEXCOP_USB=m +# CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG is not set +CONFIG_DVB_AS102=m + +# +# Webcam, TV (analog/digital) USB devices +# +CONFIG_VIDEO_EM28XX=m +# CONFIG_VIDEO_EM28XX_V4L2 is not set +CONFIG_VIDEO_EM28XX_ALSA=m +CONFIG_VIDEO_EM28XX_DVB=m +CONFIG_VIDEO_EM28XX_RC=m + +# +# USB HDMI CEC adapters +# +# CONFIG_USB_PULSE8_CEC is not set +# CONFIG_MEDIA_PCI_SUPPORT is not set +CONFIG_V4L_PLATFORM_DRIVERS=y +# CONFIG_VIDEO_CAFE_CCIC is not set +# CONFIG_SOC_CAMERA is not set +# CONFIG_V4L_MEM2MEM_DRIVERS is not set +# CONFIG_V4L_TEST_DRIVERS is not set +# CONFIG_DVB_PLATFORM_DRIVERS is not set + +# +# Supported MMC/SDIO adapters +# +CONFIG_SMS_SDIO_DRV=y +CONFIG_RADIO_ADAPTERS=y +CONFIG_RADIO_SI470X=y +CONFIG_USB_SI470X=m +CONFIG_I2C_SI470X=m +CONFIG_RADIO_SI4713=m +# CONFIG_USB_SI4713 is not set +# CONFIG_PLATFORM_SI4713 is not set +CONFIG_I2C_SI4713=m +CONFIG_USB_MR800=m +CONFIG_USB_DSBR=m +# CONFIG_RADIO_MAXIRADIO is not set +# CONFIG_RADIO_SHARK is not set +# CONFIG_RADIO_SHARK2 is not set +CONFIG_USB_KEENE=m +# CONFIG_USB_RAREMONO is not set +CONFIG_USB_MA901=m +CONFIG_RADIO_TEA5764=m +CONFIG_RADIO_SAA7706H=m +CONFIG_RADIO_TEF6862=m +CONFIG_RADIO_WL1273=m + +# +# Texas Instruments WL128x FM driver (ST based) +# +CONFIG_MEDIA_COMMON_OPTIONS=y + +# +# common driver options +# +CONFIG_VIDEO_CX2341X=m +CONFIG_VIDEO_TVEEPROM=m +CONFIG_CYPRESS_FIRMWARE=m +CONFIG_DVB_B2C2_FLEXCOP=m +CONFIG_SMS_SIANO_MDTV=y +# CONFIG_SMS_SIANO_RC is not set + +# +# Media ancillary drivers (tuners, sensors, i2c, spi, frontends) +# +CONFIG_MEDIA_SUBDRV_AUTOSELECT=y +CONFIG_MEDIA_ATTACH=y +CONFIG_VIDEO_IR_I2C=y + +# +# Audio decoders, processors and mixers +# +CONFIG_VIDEO_MSP3400=m +CONFIG_VIDEO_CS53L32A=m +CONFIG_VIDEO_WM8775=m + +# +# RDS decoders +# + +# +# Video decoders +# +CONFIG_VIDEO_SAA711X=m + +# +# Video and audio decoders +# +CONFIG_VIDEO_CX25840=m + +# +# Video encoders +# + +# +# Camera sensor devices +# + +# +# Flash devices +# + +# +# Video improvement chips +# + +# +# Audio/Video compression chips +# + +# +# Miscellaneous helper chips +# + +# +# Sensors used on soc_camera driver +# +CONFIG_MEDIA_TUNER=y +CONFIG_MEDIA_TUNER_SIMPLE=y +CONFIG_MEDIA_TUNER_TDA8290=y +CONFIG_MEDIA_TUNER_TDA827X=y +CONFIG_MEDIA_TUNER_TDA18271=y +CONFIG_MEDIA_TUNER_TDA9887=y +CONFIG_MEDIA_TUNER_TEA5761=y +CONFIG_MEDIA_TUNER_TEA5767=y +CONFIG_MEDIA_TUNER_MT20XX=y +CONFIG_MEDIA_TUNER_MT2060=m +CONFIG_MEDIA_TUNER_MT2063=m +CONFIG_MEDIA_TUNER_MT2266=m +CONFIG_MEDIA_TUNER_QT1010=m +CONFIG_MEDIA_TUNER_XC2028=y +CONFIG_MEDIA_TUNER_XC5000=y +CONFIG_MEDIA_TUNER_XC4000=y +CONFIG_MEDIA_TUNER_MXL5005S=m +CONFIG_MEDIA_TUNER_MXL5007T=m +CONFIG_MEDIA_TUNER_MC44S803=y +CONFIG_MEDIA_TUNER_MAX2165=m +CONFIG_MEDIA_TUNER_TDA18218=m +CONFIG_MEDIA_TUNER_FC0011=m +CONFIG_MEDIA_TUNER_FC0012=m +CONFIG_MEDIA_TUNER_FC0013=m +CONFIG_MEDIA_TUNER_TDA18212=m +CONFIG_MEDIA_TUNER_E4000=m +CONFIG_MEDIA_TUNER_FC2580=m +CONFIG_MEDIA_TUNER_TUA9001=m +CONFIG_MEDIA_TUNER_SI2157=m +CONFIG_MEDIA_TUNER_IT913X=m +CONFIG_MEDIA_TUNER_R820T=m +CONFIG_MEDIA_TUNER_QM1D1C0042=m + +# +# Multistandard (satellite) frontends +# +CONFIG_DVB_STB0899=m +CONFIG_DVB_STB6100=m +CONFIG_DVB_STV090x=m +CONFIG_DVB_STV6110x=m +CONFIG_DVB_M88DS3103=m + +# +# Multistandard (cable + terrestrial) frontends +# +CONFIG_DVB_DRXK=m +CONFIG_DVB_TDA18271C2DD=m +CONFIG_DVB_SI2165=m +CONFIG_DVB_MN88472=m +CONFIG_DVB_MN88473=m + +# +# DVB-S (satellite) frontends +# +CONFIG_DVB_CX24123=m +CONFIG_DVB_MT312=m +CONFIG_DVB_ZL10039=m +CONFIG_DVB_S5H1420=m +CONFIG_DVB_STV0288=m +CONFIG_DVB_STB6000=m +CONFIG_DVB_STV0299=m +CONFIG_DVB_STV6110=m +CONFIG_DVB_STV0900=m +CONFIG_DVB_TDA10086=m +CONFIG_DVB_TUNER_ITD1000=m +CONFIG_DVB_TUNER_CX24113=m +CONFIG_DVB_TDA826X=m +CONFIG_DVB_CX24116=m +CONFIG_DVB_CX24120=m +CONFIG_DVB_SI21XX=m +CONFIG_DVB_TS2020=m +CONFIG_DVB_DS3000=m +CONFIG_DVB_TDA10071=m + +# +# DVB-T (terrestrial) frontends +# +CONFIG_DVB_CX22702=m +CONFIG_DVB_DRXD=m +CONFIG_DVB_TDA1004X=m +CONFIG_DVB_NXT6000=m +CONFIG_DVB_MT352=m +CONFIG_DVB_ZL10353=m +CONFIG_DVB_DIB3000MB=m +CONFIG_DVB_DIB3000MC=m +CONFIG_DVB_DIB7000M=m +CONFIG_DVB_DIB7000P=m +CONFIG_DVB_TDA10048=m +CONFIG_DVB_AF9013=m +CONFIG_DVB_EC100=m +CONFIG_DVB_CXD2820R=m +CONFIG_DVB_RTL2830=m +CONFIG_DVB_RTL2832=m +CONFIG_DVB_SI2168=m +CONFIG_DVB_AS102_FE=m +CONFIG_DVB_GP8PSK_FE=m + +# +# DVB-C (cable) frontends +# +CONFIG_DVB_TDA10023=m +CONFIG_DVB_STV0297=m + +# +# ATSC (North American/Korean Terrestrial/Cable DTV) frontends +# +CONFIG_DVB_NXT200X=m +CONFIG_DVB_BCM3510=m +CONFIG_DVB_LGDT330X=m +CONFIG_DVB_LGDT3305=m +CONFIG_DVB_LGDT3306A=m +CONFIG_DVB_LG2160=m +CONFIG_DVB_S5H1409=m +CONFIG_DVB_AU8522=m +CONFIG_DVB_AU8522_DTV=m +CONFIG_DVB_S5H1411=m + +# +# ISDB-T (terrestrial) frontends +# +CONFIG_DVB_S921=m +CONFIG_DVB_DIB8000=m +CONFIG_DVB_MB86A20S=m + +# +# ISDB-S (satellite) & ISDB-T (terrestrial) frontends +# +CONFIG_DVB_TC90522=m + +# +# Digital terrestrial only tuners/PLL +# +CONFIG_DVB_PLL=m +CONFIG_DVB_TUNER_DIB0070=m +CONFIG_DVB_TUNER_DIB0090=m + +# +# SEC control devices for DVB-S +# +CONFIG_DVB_DRX39XYJ=m +CONFIG_DVB_LNBP21=m +CONFIG_DVB_LNBP22=m +CONFIG_DVB_ISL6421=m +CONFIG_DVB_ISL6423=m +CONFIG_DVB_A8293=m +CONFIG_DVB_SP2=m +CONFIG_DVB_LGS8GXX=m +CONFIG_DVB_ATBM8830=m +CONFIG_DVB_IX2505V=m +CONFIG_DVB_M88RS2000=m +CONFIG_DVB_AF9033=m + +# +# Tools to develop new frontends +# +# CONFIG_DVB_DUMMY_FE is not set + +# +# Graphics support +# +# CONFIG_VGA_ARB is not set +# CONFIG_IMX_IPUV3_CORE is not set +# CONFIG_DRM is not set + +# +# ACP (Audio CoProcessor) Configuration +# + +# +# Frame buffer Devices +# +CONFIG_FB=y +# CONFIG_FIRMWARE_EDID is not set +CONFIG_FB_CMDLINE=y +CONFIG_FB_NOTIFY=y +# CONFIG_FB_DDC is not set +# CONFIG_FB_BOOT_VESA_SUPPORT is not set +# CONFIG_FB_CFB_FILLRECT is not set +# CONFIG_FB_CFB_COPYAREA is not set +# CONFIG_FB_CFB_IMAGEBLIT is not set +# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set +# CONFIG_FB_SYS_FILLRECT is not set +# CONFIG_FB_SYS_COPYAREA is not set +# CONFIG_FB_SYS_IMAGEBLIT is not set +# CONFIG_FB_FOREIGN_ENDIAN is not set +# CONFIG_FB_SYS_FOPS is not set +# CONFIG_FB_SVGALIB is not set +# CONFIG_FB_MACMODES is not set +# CONFIG_FB_BACKLIGHT is not set +# CONFIG_FB_MODE_HELPERS is not set +# CONFIG_FB_TILEBLITTING is not set + +# +# Frame buffer hardware drivers +# +# CONFIG_FB_CIRRUS is not set +# CONFIG_FB_PM2 is not set +# CONFIG_FB_CYBER2000 is not set +# CONFIG_FB_ASILIANT is not set +# CONFIG_FB_IMSTT is not set +# CONFIG_FB_OPENCORES is not set +# CONFIG_FB_S1D13XXX is not set +# CONFIG_FB_NVIDIA is not set +# CONFIG_FB_RIVA is not set +# CONFIG_FB_I740 is not set +# CONFIG_FB_MATROX is not set +# CONFIG_FB_RADEON is not set +# CONFIG_FB_ATY128 is not set +# CONFIG_FB_ATY is not set +# CONFIG_FB_S3 is not set +# CONFIG_FB_SAVAGE is not set +# CONFIG_FB_SIS is not set +# CONFIG_FB_NEOMAGIC is not set +# CONFIG_FB_KYRO is not set +# CONFIG_FB_3DFX is not set +# CONFIG_FB_VOODOO1 is not set +# CONFIG_FB_VT8623 is not set +# CONFIG_FB_TRIDENT is not set +# CONFIG_FB_ARK is not set +# CONFIG_FB_PM3 is not set +# CONFIG_FB_CARMINE is not set +# CONFIG_FB_SMSCUFX is not set +# CONFIG_FB_UDL is not set +# CONFIG_FB_IBM_GXT4500 is not set +# CONFIG_FB_VIRTUAL is not set +# CONFIG_FB_METRONOME is not set +# CONFIG_FB_MB862XX is not set +# CONFIG_FB_BROADSHEET is not set +# CONFIG_FB_AUO_K190X is not set +# CONFIG_FB_SIMPLE is not set +# CONFIG_FB_SM712 is not set +# CONFIG_BACKLIGHT_LCD_SUPPORT is not set +# CONFIG_VGASTATE is not set + +# +# Console display driver support +# +CONFIG_DUMMY_CONSOLE=y +# CONFIG_FRAMEBUFFER_CONSOLE is not set +# CONFIG_LOGO is not set +CONFIG_SOUND=y +CONFIG_SOUND_OSS_CORE=y +# CONFIG_SOUND_OSS_CORE_PRECLAIM is not set +CONFIG_SND=y +CONFIG_SND_TIMER=y +CONFIG_SND_PCM=y +CONFIG_SND_JACK=y +CONFIG_SND_JACK_INPUT_DEV=y +# CONFIG_SND_SEQUENCER is not set +CONFIG_SND_OSSEMUL=y +CONFIG_SND_MIXER_OSS=y +CONFIG_SND_PCM_OSS=y +CONFIG_SND_PCM_OSS_PLUGINS=y +CONFIG_SND_PCM_TIMER=y +# CONFIG_SND_HRTIMER is not set +# CONFIG_SND_DYNAMIC_MINORS is not set +CONFIG_SND_SUPPORT_OLD_API=y +CONFIG_SND_PROC_FS=y +CONFIG_SND_VERBOSE_PROCFS=y +# CONFIG_SND_VERBOSE_PRINTK is not set +# CONFIG_SND_DEBUG is not set +# CONFIG_SND_RAWMIDI_SEQ is not set +# CONFIG_SND_OPL3_LIB_SEQ is not set +# CONFIG_SND_OPL4_LIB_SEQ is not set +# CONFIG_SND_SBAWE_SEQ is not set +# CONFIG_SND_EMU10K1_SEQ is not set +CONFIG_SND_DRIVERS=y +# CONFIG_SND_DUMMY is not set +# CONFIG_SND_ALOOP is not set +# CONFIG_SND_MTPAV is not set +# CONFIG_SND_SERIAL_U16550 is not set +# CONFIG_SND_MPU401 is not set +CONFIG_SND_PCI=y +# CONFIG_SND_AD1889 is not set +# CONFIG_SND_ATIIXP is not set +# CONFIG_SND_ATIIXP_MODEM is not set +# CONFIG_SND_AU8810 is not set +# CONFIG_SND_AU8820 is not set +# CONFIG_SND_AU8830 is not set +# CONFIG_SND_AW2 is not set +# CONFIG_SND_BT87X is not set +# CONFIG_SND_CA0106 is not set +# CONFIG_SND_CMIPCI is not set +# CONFIG_SND_OXYGEN is not set +# CONFIG_SND_CS4281 is not set +# CONFIG_SND_CS46XX is not set +# CONFIG_SND_CTXFI is not set +# CONFIG_SND_DARLA20 is not set +# CONFIG_SND_GINA20 is not set +# CONFIG_SND_LAYLA20 is not set +# CONFIG_SND_DARLA24 is not set +# CONFIG_SND_GINA24 is not set +# CONFIG_SND_LAYLA24 is not set +# CONFIG_SND_MONA is not set +# CONFIG_SND_MIA is not set +# CONFIG_SND_ECHO3G is not set +# CONFIG_SND_INDIGO is not set +# CONFIG_SND_INDIGOIO is not set +# CONFIG_SND_INDIGODJ is not set +# CONFIG_SND_INDIGOIOX is not set +# CONFIG_SND_INDIGODJX is not set +# CONFIG_SND_ENS1370 is not set +# CONFIG_SND_ENS1371 is not set +# CONFIG_SND_FM801 is not set +# CONFIG_SND_HDSP is not set +# CONFIG_SND_HDSPM is not set +# CONFIG_SND_ICE1724 is not set +# CONFIG_SND_INTEL8X0 is not set +# CONFIG_SND_INTEL8X0M is not set +# CONFIG_SND_KORG1212 is not set +# CONFIG_SND_LOLA is not set +# CONFIG_SND_LX6464ES is not set +# CONFIG_SND_MIXART is not set +# CONFIG_SND_NM256 is not set +# CONFIG_SND_PCXHR is not set +# CONFIG_SND_RIPTIDE is not set +# CONFIG_SND_RME32 is not set +# CONFIG_SND_RME96 is not set +# CONFIG_SND_RME9652 is not set +# CONFIG_SND_SE6X is not set +# CONFIG_SND_VIA82XX is not set +# CONFIG_SND_VIA82XX_MODEM is not set +# CONFIG_SND_VIRTUOSO is not set +# CONFIG_SND_VX222 is not set +# CONFIG_SND_YMFPCI is not set + +# +# HD-Audio +# +# CONFIG_SND_HDA_INTEL is not set +CONFIG_SND_HDA_PREALLOC_SIZE=64 +CONFIG_SND_ARM=y +CONFIG_SND_SPI=y +CONFIG_SND_USB=y +# CONFIG_SND_USB_AUDIO is not set +# CONFIG_SND_USB_UA101 is not set +# CONFIG_SND_USB_CAIAQ is not set +# CONFIG_SND_USB_6FIRE is not set +# CONFIG_SND_USB_HIFACE is not set +# CONFIG_SND_BCD2000 is not set +# CONFIG_SND_USB_POD is not set +# CONFIG_SND_USB_PODHD is not set +# CONFIG_SND_USB_TONEPORT is not set +# CONFIG_SND_USB_VARIAX is not set +CONFIG_SND_SOC=y +# CONFIG_SND_SOC_AMD_ACP is not set +# CONFIG_SND_ATMEL_SOC is not set +# CONFIG_SND_DESIGNWARE_I2S is not set + +# +# SoC Audio for Freescale CPUs +# + +# +# Common SoC Audio options for Freescale CPUs: +# +# CONFIG_SND_SOC_FSL_ASRC is not set +# CONFIG_SND_SOC_FSL_SAI is not set +# CONFIG_SND_SOC_FSL_SSI is not set +# CONFIG_SND_SOC_FSL_SPDIF is not set +# CONFIG_SND_SOC_FSL_ESAI is not set +# CONFIG_SND_SOC_IMX_AUDMUX is not set +# CONFIG_SND_SOC_IMG is not set +# CONFIG_SND_SOC_XTFPGA_I2S is not set +CONFIG_SND_SOC_I2C_AND_SPI=y + +# +# CODEC drivers +# +# CONFIG_SND_SOC_AC97_CODEC is not set +# CONFIG_SND_SOC_ADAU1701 is not set +# CONFIG_SND_SOC_ADAU7002 is not set +# CONFIG_SND_SOC_AK4104 is not set +# CONFIG_SND_SOC_AK4554 is not set +# CONFIG_SND_SOC_AK4613 is not set +# CONFIG_SND_SOC_AK4642 is not set +# CONFIG_SND_SOC_AK5386 is not set +# CONFIG_SND_SOC_ALC5623 is not set +# CONFIG_SND_SOC_BT_SCO is not set +# CONFIG_SND_SOC_CS35L32 is not set +# CONFIG_SND_SOC_CS35L33 is not set +# CONFIG_SND_SOC_CS35L34 is not set +# CONFIG_SND_SOC_CS42L42 is not set +# CONFIG_SND_SOC_CS42L51_I2C is not set +# CONFIG_SND_SOC_CS42L52 is not set +# CONFIG_SND_SOC_CS42L56 is not set +# CONFIG_SND_SOC_CS42L73 is not set +# CONFIG_SND_SOC_CS4265 is not set +# CONFIG_SND_SOC_CS4270 is not set +# CONFIG_SND_SOC_CS4271_I2C is not set +# CONFIG_SND_SOC_CS4271_SPI is not set +# CONFIG_SND_SOC_CS42XX8_I2C is not set +# CONFIG_SND_SOC_CS4349 is not set +# CONFIG_SND_SOC_CS53L30 is not set +# CONFIG_SND_SOC_ES8328 is not set +# CONFIG_SND_SOC_GTM601 is not set +# CONFIG_SND_SOC_INNO_RK3036 is not set +# CONFIG_SND_SOC_MAX98504 is not set +# CONFIG_SND_SOC_MAX9860 is not set +# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set +# CONFIG_SND_SOC_PCM1681 is not set +# CONFIG_SND_SOC_PCM179X_I2C is not set +# CONFIG_SND_SOC_PCM179X_SPI is not set +# CONFIG_SND_SOC_PCM3168A_I2C is not set +# CONFIG_SND_SOC_PCM3168A_SPI is not set +# CONFIG_SND_SOC_PCM512x_I2C is not set +# CONFIG_SND_SOC_PCM512x_SPI is not set +# CONFIG_SND_SOC_RT5616 is not set +# CONFIG_SND_SOC_RT5631 is not set +# CONFIG_SND_SOC_RT5677_SPI is not set +# CONFIG_SND_SOC_SGTL5000 is not set +# CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set +# CONFIG_SND_SOC_SPDIF is not set +# CONFIG_SND_SOC_SSM2602_SPI is not set +# CONFIG_SND_SOC_SSM2602_I2C is not set +# CONFIG_SND_SOC_SSM4567 is not set +# CONFIG_SND_SOC_STA32X is not set +# CONFIG_SND_SOC_STA350 is not set +# CONFIG_SND_SOC_STI_SAS is not set +# CONFIG_SND_SOC_TAS2552 is not set +# CONFIG_SND_SOC_TAS5086 is not set +# CONFIG_SND_SOC_TAS571X is not set +# CONFIG_SND_SOC_TAS5720 is not set +# CONFIG_SND_SOC_TFA9879 is not set +# CONFIG_SND_SOC_TLV320AIC23_I2C is not set +# CONFIG_SND_SOC_TLV320AIC23_SPI is not set +# CONFIG_SND_SOC_TLV320AIC31XX is not set +# CONFIG_SND_SOC_TLV320AIC3X is not set +# CONFIG_SND_SOC_TS3A227E is not set +# CONFIG_SND_SOC_WM8510 is not set +# CONFIG_SND_SOC_WM8523 is not set +# CONFIG_SND_SOC_WM8580 is not set +# CONFIG_SND_SOC_WM8711 is not set +# CONFIG_SND_SOC_WM8728 is not set +# CONFIG_SND_SOC_WM8731 is not set +# CONFIG_SND_SOC_WM8737 is not set +# CONFIG_SND_SOC_WM8741 is not set +# CONFIG_SND_SOC_WM8750 is not set +# CONFIG_SND_SOC_WM8753 is not set +# CONFIG_SND_SOC_WM8770 is not set +# CONFIG_SND_SOC_WM8776 is not set +# CONFIG_SND_SOC_WM8804_I2C is not set +# CONFIG_SND_SOC_WM8804_SPI is not set +# CONFIG_SND_SOC_WM8903 is not set +# CONFIG_SND_SOC_WM8960 is not set +# CONFIG_SND_SOC_WM8962 is not set +# CONFIG_SND_SOC_WM8974 is not set +# CONFIG_SND_SOC_WM8978 is not set +# CONFIG_SND_SOC_WM8985 is not set +# CONFIG_SND_SOC_NAU8810 is not set +# CONFIG_SND_SOC_TPA6130A2 is not set +# CONFIG_SND_SIMPLE_CARD is not set +# CONFIG_SND_SIMPLE_SCU_CARD is not set +CONFIG_SOUND_PRIME=y + +# +# HID support +# +CONFIG_HID=y +# CONFIG_HID_BATTERY_STRENGTH is not set +CONFIG_HIDRAW=y +# CONFIG_UHID is not set +CONFIG_HID_GENERIC=y + +# +# Special HID drivers +# +# CONFIG_HID_A4TECH is not set +# CONFIG_HID_ACRUX is not set +# CONFIG_HID_APPLE is not set +# CONFIG_HID_APPLEIR is not set +# CONFIG_HID_AUREAL is not set +# CONFIG_HID_BELKIN is not set +# CONFIG_HID_BETOP_FF is not set +# CONFIG_HID_CHERRY is not set +# CONFIG_HID_CHICONY is not set +# CONFIG_HID_CORSAIR is not set +# CONFIG_HID_PRODIKEYS is not set +# CONFIG_HID_CMEDIA is not set +# CONFIG_HID_CYPRESS is not set +# CONFIG_HID_DRAGONRISE is not set +# CONFIG_HID_EMS_FF is not set +# CONFIG_HID_ELECOM is not set +# CONFIG_HID_ELO is not set +# CONFIG_HID_EZKEY is not set +# CONFIG_HID_GEMBIRD is not set +# CONFIG_HID_GFRM is not set +# CONFIG_HID_HOLTEK is not set +# CONFIG_HID_GT683R is not set +# CONFIG_HID_KEYTOUCH is not set +# CONFIG_HID_KYE is not set +# CONFIG_HID_UCLOGIC is not set +# CONFIG_HID_WALTOP is not set +# CONFIG_HID_GYRATION is not set +# CONFIG_HID_ICADE is not set +# CONFIG_HID_TWINHAN is not set +# CONFIG_HID_KENSINGTON is not set +# CONFIG_HID_LCPOWER is not set +# CONFIG_HID_LED is not set +# CONFIG_HID_LENOVO is not set +CONFIG_HID_LOGITECH=y +CONFIG_HID_LOGITECH_DJ=y +CONFIG_HID_LOGITECH_HIDPP=y +# CONFIG_LOGITECH_FF is not set +# CONFIG_LOGIRUMBLEPAD2_FF is not set +# CONFIG_LOGIG940_FF is not set +# CONFIG_LOGIWHEELS_FF is not set +# CONFIG_HID_MAGICMOUSE is not set +# CONFIG_HID_MAYFLASH is not set +# CONFIG_HID_MICROSOFT is not set +# CONFIG_HID_MONTEREY is not set +# CONFIG_HID_MULTITOUCH is not set +# CONFIG_HID_NTRIG is not set +# CONFIG_HID_ORTEK is not set +# CONFIG_HID_PANTHERLORD is not set +# CONFIG_HID_PENMOUNT is not set +# CONFIG_HID_PETALYNX is not set +# CONFIG_HID_PICOLCD is not set +# CONFIG_HID_PLANTRONICS is not set +# CONFIG_HID_PRIMAX is not set +# CONFIG_HID_ROCCAT is not set +# CONFIG_HID_SAITEK is not set +# CONFIG_HID_SAMSUNG is not set +# CONFIG_HID_SONY is not set +# CONFIG_HID_SPEEDLINK is not set +# CONFIG_HID_STEELSERIES is not set +# CONFIG_HID_SUNPLUS is not set +# CONFIG_HID_RMI is not set +# CONFIG_HID_GREENASIA is not set +# CONFIG_HID_SMARTJOYPLUS is not set +# CONFIG_HID_TIVO is not set +# CONFIG_HID_TOPSEED is not set +# CONFIG_HID_THINGM is not set +# CONFIG_HID_THRUSTMASTER is not set +# CONFIG_HID_UDRAW_PS3 is not set +# CONFIG_HID_WACOM is not set +# CONFIG_HID_WIIMOTE is not set +# CONFIG_HID_XINMO is not set +# CONFIG_HID_ZEROPLUS is not set +# CONFIG_HID_ZYDACRON is not set +# CONFIG_HID_SENSOR_HUB is not set +# CONFIG_HID_ALPS is not set + +# +# USB HID support +# +CONFIG_USB_HID=y +# CONFIG_HID_PID is not set +CONFIG_USB_HIDDEV=y + +# +# I2C HID support +# +# CONFIG_I2C_HID is not set +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +CONFIG_USB_SUPPORT=y +CONFIG_USB_COMMON=y +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB=y +# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set + +# +# Miscellaneous USB options +# +CONFIG_USB_DEFAULT_PERSIST=y +# CONFIG_USB_DYNAMIC_MINORS is not set +# CONFIG_USB_OTG is not set +# CONFIG_USB_OTG_WHITELIST is not set +# CONFIG_USB_OTG_BLACKLIST_HUB is not set +# CONFIG_USB_LEDS_TRIGGER_USBPORT is not set +# CONFIG_USB_MON is not set +# CONFIG_USB_WUSB_CBAF is not set + +# +# USB Host Controller Drivers +# +# CONFIG_USB_C67X00_HCD is not set +CONFIG_USB_XHCI_HCD=y +CONFIG_USB_XHCI_PCI=y +CONFIG_USB_XHCI_PLATFORM=y +CONFIG_USB_EHCI_HCD=y +# CONFIG_USB_EHCI_ROOT_HUB_TT is not set +CONFIG_USB_EHCI_TT_NEWSCHED=y +CONFIG_USB_EHCI_PCI=y +# CONFIG_USB_EHCI_HCD_PLATFORM is not set +# CONFIG_USB_OXU210HP_HCD is not set +# CONFIG_USB_ISP116X_HCD is not set +# CONFIG_USB_ISP1362_HCD is not set +# CONFIG_USB_FOTG210_HCD is not set +# CONFIG_USB_MAX3421_HCD is not set +CONFIG_USB_OHCI_HCD=y +CONFIG_USB_OHCI_HCD_PCI=y +# CONFIG_USB_OHCI_HCD_PLATFORM is not set +# CONFIG_USB_UHCI_HCD is not set +# CONFIG_USB_SL811_HCD is not set +# CONFIG_USB_R8A66597_HCD is not set +# CONFIG_USB_HCD_TEST_MODE is not set + +# +# USB Device Class drivers +# +CONFIG_USB_ACM=m +# CONFIG_USB_PRINTER is not set +# CONFIG_USB_WDM is not set +# CONFIG_USB_TMC is not set + +# +# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may +# + +# +# also be needed; see USB_STORAGE Help for more info +# +CONFIG_USB_STORAGE=y +# CONFIG_USB_STORAGE_DEBUG is not set +# CONFIG_USB_STORAGE_REALTEK is not set +# CONFIG_USB_STORAGE_DATAFAB is not set +# CONFIG_USB_STORAGE_FREECOM is not set +# CONFIG_USB_STORAGE_ISD200 is not set +# CONFIG_USB_STORAGE_USBAT is not set +# CONFIG_USB_STORAGE_SDDR09 is not set +# CONFIG_USB_STORAGE_SDDR55 is not set +# CONFIG_USB_STORAGE_JUMPSHOT is not set +# CONFIG_USB_STORAGE_ALAUDA is not set +# CONFIG_USB_STORAGE_ONETOUCH is not set +# CONFIG_USB_STORAGE_KARMA is not set +# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set +# CONFIG_USB_STORAGE_ENE_UB6250 is not set +CONFIG_USB_UAS=y + +# +# USB Imaging devices +# +# CONFIG_USB_MDC800 is not set +# CONFIG_USB_MICROTEK is not set +# CONFIG_USBIP_CORE is not set +# CONFIG_USB_MUSB_HDRC is not set +# CONFIG_USB_DWC3 is not set +# CONFIG_USB_DWC2 is not set +# CONFIG_USB_CHIPIDEA is not set +# CONFIG_USB_ISP1760 is not set + +# +# USB port drivers +# +CONFIG_USB_SERIAL=y +# CONFIG_USB_SERIAL_CONSOLE is not set +CONFIG_USB_SERIAL_GENERIC=y +# CONFIG_USB_SERIAL_SIMPLE is not set +# CONFIG_USB_SERIAL_AIRCABLE is not set +# CONFIG_USB_SERIAL_ARK3116 is not set +# CONFIG_USB_SERIAL_BELKIN is not set +# CONFIG_USB_SERIAL_CH341 is not set +# CONFIG_USB_SERIAL_WHITEHEAT is not set +# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set +# CONFIG_USB_SERIAL_CP210X is not set +# CONFIG_USB_SERIAL_CYPRESS_M8 is not set +# CONFIG_USB_SERIAL_EMPEG is not set +CONFIG_USB_SERIAL_FTDI_SIO=m +# CONFIG_USB_SERIAL_VISOR is not set +# CONFIG_USB_SERIAL_IPAQ is not set +# CONFIG_USB_SERIAL_IR is not set +# CONFIG_USB_SERIAL_EDGEPORT is not set +# CONFIG_USB_SERIAL_EDGEPORT_TI is not set +# CONFIG_USB_SERIAL_F81232 is not set +# CONFIG_USB_SERIAL_F8153X is not set +# CONFIG_USB_SERIAL_GARMIN is not set +# CONFIG_USB_SERIAL_IPW is not set +# CONFIG_USB_SERIAL_IUU is not set +# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set +# CONFIG_USB_SERIAL_KEYSPAN is not set +# CONFIG_USB_SERIAL_KLSI is not set +# CONFIG_USB_SERIAL_KOBIL_SCT is not set +# CONFIG_USB_SERIAL_MCT_U232 is not set +# CONFIG_USB_SERIAL_METRO is not set +# CONFIG_USB_SERIAL_MOS7720 is not set +# CONFIG_USB_SERIAL_MOS7840 is not set +# CONFIG_USB_SERIAL_MXUPORT is not set +# CONFIG_USB_SERIAL_NAVMAN is not set +CONFIG_USB_SERIAL_PL2303=m +# CONFIG_USB_SERIAL_OTI6858 is not set +# CONFIG_USB_SERIAL_QCAUX is not set +# CONFIG_USB_SERIAL_QUALCOMM is not set +# CONFIG_USB_SERIAL_SPCP8X5 is not set +# CONFIG_USB_SERIAL_SAFE is not set +# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set +# CONFIG_USB_SERIAL_SYMBOL is not set +# CONFIG_USB_SERIAL_TI is not set +# CONFIG_USB_SERIAL_CYBERJACK is not set +# CONFIG_USB_SERIAL_XIRCOM is not set +# CONFIG_USB_SERIAL_OPTION is not set +# CONFIG_USB_SERIAL_OMNINET is not set +# CONFIG_USB_SERIAL_OPTICON is not set +# CONFIG_USB_SERIAL_XSENS_MT is not set +# CONFIG_USB_SERIAL_WISHBONE is not set +# CONFIG_USB_SERIAL_SSU100 is not set +# CONFIG_USB_SERIAL_QT2 is not set +# CONFIG_USB_SERIAL_DEBUG is not set + +# +# USB Miscellaneous drivers +# +# CONFIG_USB_EMI62 is not set +# CONFIG_USB_EMI26 is not set +# CONFIG_USB_ADUTUX is not set +# CONFIG_USB_SEVSEG is not set +# CONFIG_USB_RIO500 is not set +# CONFIG_USB_LEGOTOWER is not set +# CONFIG_USB_LCD is not set +# CONFIG_USB_CYPRESS_CY7C63 is not set +# CONFIG_USB_CYTHERM is not set +# CONFIG_USB_IDMOUSE is not set +# CONFIG_USB_FTDI_ELAN is not set +# CONFIG_USB_APPLEDISPLAY is not set +# CONFIG_USB_SISUSBVGA is not set +# CONFIG_USB_LD is not set +# CONFIG_USB_TRANCEVIBRATOR is not set +# CONFIG_USB_IOWARRIOR is not set +# CONFIG_USB_TEST is not set +# CONFIG_USB_EHSET_TEST_FIXTURE is not set +# CONFIG_USB_ISIGHTFW is not set +# CONFIG_USB_YUREX is not set +CONFIG_USB_EZUSB_FX2=m +# CONFIG_USB_HSIC_USB3503 is not set +# CONFIG_USB_HSIC_USB4604 is not set +# CONFIG_USB_LINK_LAYER_TEST is not set +# CONFIG_USB_CHAOSKEY is not set + +# +# USB Physical Layer drivers +# +# CONFIG_USB_PHY is not set +# CONFIG_NOP_USB_XCEIV is not set +# CONFIG_USB_ISP1301 is not set +# CONFIG_USB_ULPI is not set +# CONFIG_USB_GADGET is not set +# CONFIG_USB_LED_TRIG is not set +# CONFIG_USB_ULPI_BUS is not set +# CONFIG_UWB is not set +CONFIG_MMC=y +# CONFIG_MMC_DEBUG is not set +CONFIG_PWRSEQ_EMMC=y +CONFIG_PWRSEQ_SIMPLE=y +CONFIG_MMC_BLOCK=y +CONFIG_MMC_BLOCK_MINORS=16 +CONFIG_MMC_BLOCK_BOUNCE=y +# CONFIG_SDIO_UART is not set +# CONFIG_MMC_TEST is not set + +# +# MMC/SD/SDIO Host Controller Drivers +# +CONFIG_MMC_SDHCI=y +# CONFIG_MMC_SDHCI_PCI is not set +CONFIG_MMC_SDHCI_PLTFM=y +# CONFIG_MMC_SDHCI_OF_ARASAN is not set +# CONFIG_MMC_SDHCI_OF_AT91 is not set +# CONFIG_MMC_SDHCI_CADENCE is not set +# CONFIG_MMC_SDHCI_F_SDH30 is not set +# CONFIG_MMC_TIFM_SD is not set +# CONFIG_MMC_CB710 is not set +# CONFIG_MMC_VIA_SDMMC is not set +# CONFIG_MMC_DW is not set +# CONFIG_MMC_VUB300 is not set +# CONFIG_MMC_USHC is not set +# CONFIG_MMC_USDHI6ROL0 is not set +# CONFIG_MMC_TOSHIBA_PCI is not set +# CONFIG_MMC_MTK is not set +CONFIG_MMC_SDHCI_BRCMSTB=y +# CONFIG_MEMSTICK is not set +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=m +# CONFIG_LEDS_CLASS_FLASH is not set + +# +# LED drivers +# +# CONFIG_LEDS_BCM6328 is not set +# CONFIG_LEDS_BCM6358 is not set +# CONFIG_LEDS_LM3530 is not set +# CONFIG_LEDS_LM3642 is not set +# CONFIG_LEDS_PCA9532 is not set +# CONFIG_LEDS_LP3944 is not set +# CONFIG_LEDS_LP5521 is not set +# CONFIG_LEDS_LP5523 is not set +# CONFIG_LEDS_LP5562 is not set +# CONFIG_LEDS_LP8501 is not set +# CONFIG_LEDS_LP8860 is not set +# CONFIG_LEDS_PCA955X is not set +# CONFIG_LEDS_PCA963X is not set +# CONFIG_LEDS_DAC124S085 is not set +# CONFIG_LEDS_REGULATOR is not set +# CONFIG_LEDS_BD2802 is not set +# CONFIG_LEDS_TCA6507 is not set +# CONFIG_LEDS_TLC591XX is not set +# CONFIG_LEDS_LM355x is not set +# CONFIG_LEDS_IS31FL319X is not set +# CONFIG_LEDS_IS31FL32XX is not set + +# +# LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM) +# +# CONFIG_LEDS_BLINKM is not set +# CONFIG_LEDS_USER is not set + +# +# LED Triggers +# +CONFIG_LEDS_TRIGGERS=y +# CONFIG_LEDS_TRIGGER_TIMER is not set +# CONFIG_LEDS_TRIGGER_ONESHOT is not set +# CONFIG_LEDS_TRIGGER_DISK is not set +# CONFIG_LEDS_TRIGGER_MTD is not set +# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set +# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set +# CONFIG_LEDS_TRIGGER_CPU is not set +# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set + +# +# iptables trigger is under Netfilter config (LED target) +# +# CONFIG_LEDS_TRIGGER_TRANSIENT is not set +# CONFIG_LEDS_TRIGGER_CAMERA is not set +# CONFIG_LEDS_TRIGGER_PANIC is not set +# CONFIG_ACCESSIBILITY is not set +# CONFIG_INFINIBAND is not set +CONFIG_EDAC_ATOMIC_SCRUB=y +CONFIG_EDAC_SUPPORT=y +# CONFIG_EDAC is not set +CONFIG_RTC_LIB=y +# CONFIG_RTC_CLASS is not set +# CONFIG_DMADEVICES is not set + +# +# DMABUF options +# +# CONFIG_SYNC_FILE is not set +# CONFIG_AUXDISPLAY is not set +# CONFIG_UIO is not set +# CONFIG_VIRT_DRIVERS is not set + +# +# Virtio drivers +# +# CONFIG_VIRTIO_PCI is not set +# CONFIG_VIRTIO_MMIO is not set + +# +# Microsoft Hyper-V guest support +# +CONFIG_STAGING=y +CONFIG_PRISM2_USB=m +# CONFIG_COMEDI is not set +CONFIG_RTL8192U=m +CONFIG_RTLLIB=m +CONFIG_RTLLIB_CRYPTO_CCMP=m +CONFIG_RTLLIB_CRYPTO_TKIP=m +CONFIG_RTLLIB_CRYPTO_WEP=m +CONFIG_RTL8192E=m +CONFIG_R8712U=m +CONFIG_R8188EU=m +# CONFIG_88EU_AP_MODE is not set +# CONFIG_RTS5208 is not set +# CONFIG_VT6655 is not set +# CONFIG_VT6656 is not set +# CONFIG_FB_SM750 is not set +# CONFIG_FB_XGI is not set + +# +# Speakup console speech +# +# CONFIG_SPEAKUP is not set +CONFIG_STAGING_MEDIA=y +# CONFIG_I2C_BCM2048 is not set +# CONFIG_DVB_CXD2099 is not set + +# +# Android +# +# CONFIG_STAGING_BOARD is not set +# CONFIG_LTE_GDM724X is not set +# CONFIG_MTD_SPINAND_MT29F is not set +# CONFIG_LNET is not set +# CONFIG_DGNC is not set +# CONFIG_GS_FPGABOOT is not set +# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set +# CONFIG_WILC1000_SDIO is not set +# CONFIG_WILC1000_SPI is not set +# CONFIG_MOST is not set +# CONFIG_KS7010 is not set +# CONFIG_GREYBUS is not set +# CONFIG_GOLDFISH is not set +# CONFIG_CHROME_PLATFORMS is not set +CONFIG_CLKDEV_LOOKUP=y +CONFIG_HAVE_CLK_PREPARE=y +CONFIG_COMMON_CLK=y + +# +# Common Clock Framework +# +# CONFIG_COMMON_CLK_SI5351 is not set +# CONFIG_COMMON_CLK_SI514 is not set +# CONFIG_COMMON_CLK_SI570 is not set +# CONFIG_COMMON_CLK_CDCE706 is not set +# CONFIG_COMMON_CLK_CDCE925 is not set +# CONFIG_COMMON_CLK_CS2000_CP is not set +# CONFIG_CLK_QORIQ is not set +# CONFIG_COMMON_CLK_NXP is not set +# CONFIG_COMMON_CLK_PXA is not set +# CONFIG_COMMON_CLK_PIC32 is not set +# CONFIG_COMMON_CLK_MT2701 is not set +# CONFIG_COMMON_CLK_MT2701_MMSYS is not set +# CONFIG_COMMON_CLK_MT2701_IMGSYS is not set +# CONFIG_COMMON_CLK_MT2701_VDECSYS is not set +# CONFIG_COMMON_CLK_MT2701_HIFSYS is not set +# CONFIG_COMMON_CLK_MT2701_ETHSYS is not set +# CONFIG_COMMON_CLK_MT2701_BDPSYS is not set + +# +# Hardware Spinlock drivers +# + +# +# Clock Source drivers +# +CONFIG_CLKSRC_OF=y +CONFIG_CLKSRC_PROBE=y +CONFIG_ARM_ARCH_TIMER=y +CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y +# CONFIG_ARM_TIMER_SP804 is not set +# CONFIG_ATMEL_PIT is not set +# CONFIG_SH_TIMER_CMT is not set +# CONFIG_SH_TIMER_MTU2 is not set +# CONFIG_SH_TIMER_TMU is not set +# CONFIG_EM_TIMER_STI is not set +# CONFIG_MAILBOX is not set +# CONFIG_IOMMU_SUPPORT is not set + +# +# Remoteproc drivers +# +# CONFIG_REMOTEPROC is not set + +# +# Rpmsg drivers +# + +# +# SOC (System On Chip) specific Drivers +# + +# +# Broadcom SoC drivers +# +CONFIG_SOC_BRCMSTB=y +CONFIG_BRCMSTB_CMA=y +CONFIG_BRCMSTB_MEMORY_API=y +CONFIG_BRCMSTB_PM=y +# CONFIG_SUNXI_SRAM is not set +# CONFIG_SOC_TI is not set +# CONFIG_PM_DEVFREQ is not set +# CONFIG_EXTCON is not set +# CONFIG_MEMORY is not set +# CONFIG_IIO is not set +# CONFIG_NTB is not set +# CONFIG_VME_BUS is not set +# CONFIG_PWM is not set +CONFIG_IRQCHIP=y +CONFIG_ARM_GIC=y +CONFIG_ARM_GIC_MAX_NR=1 +CONFIG_BCM7120_L2_IRQ=y +CONFIG_BRCMSTB_L2_IRQ=y +# CONFIG_IPACK_BUS is not set +CONFIG_RESET_CONTROLLER=y +# CONFIG_RESET_ATH79 is not set +# CONFIG_RESET_BERLIN is not set +# CONFIG_RESET_LPC18XX is not set +# CONFIG_RESET_MESON is not set +# CONFIG_RESET_PISTACHIO is not set +# CONFIG_RESET_SOCFPGA is not set +# CONFIG_RESET_STM32 is not set +# CONFIG_RESET_SUNXI is not set +# CONFIG_TI_SYSCON_RESET is not set +# CONFIG_RESET_ZYNQ is not set +# CONFIG_RESET_TEGRA_BPMP is not set +# CONFIG_FMC is not set + +# +# PHY Subsystem +# +CONFIG_GENERIC_PHY=y +# CONFIG_PHY_PXA_28NM_HSIC is not set +# CONFIG_PHY_PXA_28NM_USB2 is not set +# CONFIG_BCM_KONA_USB2_PHY is not set +CONFIG_PHY_BRCM_SATA=y +# CONFIG_POWERCAP is not set +# CONFIG_MCB is not set + +# +# Performance monitor support +# +CONFIG_ARM_PMU=y +# CONFIG_RAS is not set + +# +# Android +# +# CONFIG_ANDROID is not set +# CONFIG_LIBNVDIMM is not set +# CONFIG_NVMEM is not set +# CONFIG_STM is not set +# CONFIG_INTEL_TH is not set + +# +# FPGA Configuration Support +# +# CONFIG_FPGA is not set + +# +# Firmware Drivers +# +CONFIG_ARM_PSCI_FW=y +# CONFIG_ARM_PSCI_CHECKER is not set +# CONFIG_FIRMWARE_MEMMAP is not set +# CONFIG_FW_CFG_SYSFS is not set +CONFIG_HAVE_ARM_SMCCC=y + +# +# Tegra firmware driver +# + +# +# File systems +# +CONFIG_DCACHE_WORD_ACCESS=y +CONFIG_FS_IOMAP=y +CONFIG_EXT2_FS=m +# CONFIG_EXT2_FS_XATTR is not set +CONFIG_EXT3_FS=m +# CONFIG_EXT3_FS_POSIX_ACL is not set +# CONFIG_EXT3_FS_SECURITY is not set +CONFIG_EXT4_FS=y +# CONFIG_EXT4_FS_POSIX_ACL is not set +# CONFIG_EXT4_FS_SECURITY is not set +# CONFIG_EXT4_ENCRYPTION is not set +# CONFIG_EXT4_DEBUG is not set +CONFIG_JBD2=y +# CONFIG_JBD2_DEBUG is not set +CONFIG_FS_MBCACHE=y +# CONFIG_REISERFS_FS is not set +CONFIG_JFS_FS=y +# CONFIG_JFS_POSIX_ACL is not set +# CONFIG_JFS_SECURITY is not set +# CONFIG_JFS_DEBUG is not set +# CONFIG_JFS_STATISTICS is not set +CONFIG_XFS_FS=m +# CONFIG_XFS_QUOTA is not set +# CONFIG_XFS_POSIX_ACL is not set +CONFIG_XFS_RT=y +# CONFIG_XFS_WARN is not set +# CONFIG_XFS_DEBUG is not set +# CONFIG_GFS2_FS is not set +# CONFIG_BTRFS_FS is not set +# CONFIG_NILFS2_FS is not set +CONFIG_F2FS_FS=m +CONFIG_F2FS_STAT_FS=y +CONFIG_F2FS_FS_XATTR=y +CONFIG_F2FS_FS_POSIX_ACL=y +# CONFIG_F2FS_FS_SECURITY is not set +# CONFIG_F2FS_CHECK_FS is not set +# CONFIG_F2FS_FS_ENCRYPTION is not set +# CONFIG_F2FS_FAULT_INJECTION is not set +CONFIG_FS_POSIX_ACL=y +CONFIG_EXPORTFS=y +# CONFIG_EXPORTFS_BLOCK_OPS is not set +CONFIG_FILE_LOCKING=y +CONFIG_MANDATORY_FILE_LOCKING=y +CONFIG_FS_ENCRYPTION=y +CONFIG_FSNOTIFY=y +CONFIG_DNOTIFY=y +CONFIG_INOTIFY_USER=y +CONFIG_FANOTIFY=y +# CONFIG_QUOTA is not set +# CONFIG_QUOTACTL is not set +CONFIG_AUTOFS4_FS=y +CONFIG_FUSE_FS=y +# CONFIG_CUSE is not set +# CONFIG_OVERLAY_FS is not set + +# +# Caches +# +CONFIG_FSCACHE=y +# CONFIG_FSCACHE_STATS is not set +# CONFIG_FSCACHE_HISTOGRAM is not set +# CONFIG_FSCACHE_DEBUG is not set +# CONFIG_FSCACHE_OBJECT_LIST is not set +# CONFIG_CACHEFILES is not set + +# +# CD-ROM/DVD Filesystems +# +CONFIG_ISO9660_FS=y +CONFIG_JOLIET=y +CONFIG_ZISOFS=y +CONFIG_UDF_FS=y +CONFIG_UDF_NLS=y + +# +# DOS/FAT/NT Filesystems +# +CONFIG_FAT_FS=y +CONFIG_MSDOS_FS=y +CONFIG_VFAT_FS=y +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +# CONFIG_FAT_DEFAULT_UTF8 is not set +# CONFIG_NTFS_FS is not set + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_PROC_SYSCTL=y +CONFIG_PROC_PAGE_MONITOR=y +# CONFIG_PROC_CHILDREN is not set +CONFIG_KERNFS=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_TMPFS_XATTR=y +# CONFIG_HUGETLBFS is not set +# CONFIG_HUGETLB_PAGE is not set +# CONFIG_CONFIGFS_FS is not set +CONFIG_MISC_FILESYSTEMS=y +# CONFIG_ORANGEFS_FS is not set +# CONFIG_ADFS_FS is not set +# CONFIG_AFFS_FS is not set +# CONFIG_ECRYPT_FS is not set +CONFIG_HFS_FS=y +CONFIG_HFSPLUS_FS=y +# CONFIG_HFSPLUS_FS_POSIX_ACL is not set +# CONFIG_BEFS_FS is not set +# CONFIG_BFS_FS is not set +# CONFIG_EFS_FS is not set +CONFIG_JFFS2_FS=m +CONFIG_JFFS2_FS_DEBUG=0 +CONFIG_JFFS2_FS_WRITEBUFFER=y +# CONFIG_JFFS2_FS_WBUF_VERIFY is not set +CONFIG_JFFS2_SUMMARY=y +# CONFIG_JFFS2_FS_XATTR is not set +CONFIG_JFFS2_COMPRESSION_OPTIONS=y +CONFIG_JFFS2_ZLIB=y +CONFIG_JFFS2_LZO=y +CONFIG_JFFS2_RTIME=y +CONFIG_JFFS2_RUBIN=y +# CONFIG_JFFS2_CMODE_NONE is not set +# CONFIG_JFFS2_CMODE_PRIORITY is not set +# CONFIG_JFFS2_CMODE_SIZE is not set +CONFIG_JFFS2_CMODE_FAVOURLZO=y +CONFIG_UBIFS_FS=y +# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set +CONFIG_UBIFS_FS_LZO=y +CONFIG_UBIFS_FS_ZLIB=y +# CONFIG_UBIFS_ATIME_SUPPORT is not set +CONFIG_UBIFS_FS_ENCRYPTION=y +# CONFIG_CRAMFS is not set +CONFIG_SQUASHFS=m +CONFIG_SQUASHFS_FILE_CACHE=y +# CONFIG_SQUASHFS_FILE_DIRECT is not set +CONFIG_SQUASHFS_DECOMP_SINGLE=y +# CONFIG_SQUASHFS_DECOMP_MULTI is not set +# CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU is not set +# CONFIG_SQUASHFS_XATTR is not set +CONFIG_SQUASHFS_ZLIB=y +# CONFIG_SQUASHFS_LZ4 is not set +# CONFIG_SQUASHFS_LZO is not set +# CONFIG_SQUASHFS_XZ is not set +# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set +# CONFIG_SQUASHFS_EMBEDDED is not set +CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 +# CONFIG_VXFS_FS is not set +# CONFIG_MINIX_FS is not set +# CONFIG_OMFS_FS is not set +# CONFIG_HPFS_FS is not set +# CONFIG_QNX4FS_FS is not set +# CONFIG_QNX6FS_FS is not set +# CONFIG_ROMFS_FS is not set +# CONFIG_PSTORE is not set +# CONFIG_SYSV_FS is not set +# CONFIG_UFS_FS is not set +CONFIG_NETWORK_FILESYSTEMS=y +CONFIG_NFS_FS=y +CONFIG_NFS_V2=y +CONFIG_NFS_V3=y +# CONFIG_NFS_V3_ACL is not set +CONFIG_NFS_V4=y +CONFIG_NFS_SWAP=y +CONFIG_NFS_V4_1=y +CONFIG_NFS_V4_2=y +CONFIG_PNFS_FILE_LAYOUT=y +CONFIG_PNFS_FLEXFILE_LAYOUT=m +CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org" +# CONFIG_NFS_V4_1_MIGRATION is not set +CONFIG_ROOT_NFS=y +# CONFIG_NFS_FSCACHE is not set +# CONFIG_NFS_USE_LEGACY_DNS is not set +CONFIG_NFS_USE_KERNEL_DNS=y +CONFIG_NFSD=y +CONFIG_NFSD_V3=y +# CONFIG_NFSD_V3_ACL is not set +# CONFIG_NFSD_V4 is not set +CONFIG_GRACE_PERIOD=y +CONFIG_LOCKD=y +CONFIG_LOCKD_V4=y +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=y +CONFIG_SUNRPC_GSS=y +CONFIG_SUNRPC_BACKCHANNEL=y +CONFIG_SUNRPC_SWAP=y +CONFIG_RPCSEC_GSS_KRB5=m +# CONFIG_SUNRPC_DEBUG is not set +# CONFIG_CEPH_FS is not set +CONFIG_CIFS=y +# CONFIG_CIFS_STATS is not set +# CONFIG_CIFS_WEAK_PW_HASH is not set +# CONFIG_CIFS_UPCALL is not set +# CONFIG_CIFS_XATTR is not set +# CONFIG_CIFS_DEBUG is not set +# CONFIG_CIFS_DFS_UPCALL is not set +CONFIG_CIFS_SMB2=y +# CONFIG_CIFS_SMB311 is not set +# CONFIG_CIFS_FSCACHE is not set +# CONFIG_NCP_FS is not set +# CONFIG_CODA_FS is not set +# CONFIG_AFS_FS is not set +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="iso8859-15" +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_CODEPAGE_737=m +CONFIG_NLS_CODEPAGE_775=m +CONFIG_NLS_CODEPAGE_850=m +CONFIG_NLS_CODEPAGE_852=m +CONFIG_NLS_CODEPAGE_855=m +CONFIG_NLS_CODEPAGE_857=m +CONFIG_NLS_CODEPAGE_860=m +CONFIG_NLS_CODEPAGE_861=m +CONFIG_NLS_CODEPAGE_862=m +CONFIG_NLS_CODEPAGE_863=m +CONFIG_NLS_CODEPAGE_864=m +CONFIG_NLS_CODEPAGE_865=m +CONFIG_NLS_CODEPAGE_866=m +CONFIG_NLS_CODEPAGE_869=m +CONFIG_NLS_CODEPAGE_936=m +CONFIG_NLS_CODEPAGE_950=m +CONFIG_NLS_CODEPAGE_932=m +CONFIG_NLS_CODEPAGE_949=m +CONFIG_NLS_CODEPAGE_874=m +CONFIG_NLS_ISO8859_8=m +CONFIG_NLS_CODEPAGE_1250=m +CONFIG_NLS_CODEPAGE_1251=m +CONFIG_NLS_ASCII=y +CONFIG_NLS_ISO8859_1=y +CONFIG_NLS_ISO8859_2=m +CONFIG_NLS_ISO8859_3=m +CONFIG_NLS_ISO8859_4=m +CONFIG_NLS_ISO8859_5=m +CONFIG_NLS_ISO8859_6=m +CONFIG_NLS_ISO8859_7=m +CONFIG_NLS_ISO8859_9=m +CONFIG_NLS_ISO8859_13=m +CONFIG_NLS_ISO8859_14=m +CONFIG_NLS_ISO8859_15=y +CONFIG_NLS_KOI8_R=m +CONFIG_NLS_KOI8_U=m +# CONFIG_NLS_MAC_ROMAN is not set +# CONFIG_NLS_MAC_CELTIC is not set +# CONFIG_NLS_MAC_CENTEURO is not set +# CONFIG_NLS_MAC_CROATIAN is not set +# CONFIG_NLS_MAC_CYRILLIC is not set +# CONFIG_NLS_MAC_GAELIC is not set +# CONFIG_NLS_MAC_GREEK is not set +# CONFIG_NLS_MAC_ICELAND is not set +# CONFIG_NLS_MAC_INUIT is not set +# CONFIG_NLS_MAC_ROMANIAN is not set +# CONFIG_NLS_MAC_TURKISH is not set +CONFIG_NLS_UTF8=y + +# +# Kernel hacking +# + +# +# printk and dmesg options +# +CONFIG_PRINTK_TIME=y +CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7 +CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 +# CONFIG_BOOT_PRINTK_DELAY is not set +CONFIG_DYNAMIC_DEBUG=y + +# +# Compile-time checks and compiler options +# +CONFIG_DEBUG_INFO=y +CONFIG_DEBUG_INFO_REDUCED=y +# CONFIG_DEBUG_INFO_SPLIT is not set +# CONFIG_DEBUG_INFO_DWARF4 is not set +# CONFIG_GDB_SCRIPTS is not set +CONFIG_ENABLE_WARN_DEPRECATED=y +CONFIG_ENABLE_MUST_CHECK=y +CONFIG_FRAME_WARN=1024 +# CONFIG_STRIP_ASM_SYMS is not set +# CONFIG_READABLE_ASM is not set +# CONFIG_UNUSED_SYMBOLS is not set +# CONFIG_PAGE_OWNER is not set +CONFIG_DEBUG_FS=y +# CONFIG_HEADERS_CHECK is not set +# CONFIG_DEBUG_SECTION_MISMATCH is not set +CONFIG_SECTION_MISMATCH_WARN_ONLY=y +# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set +CONFIG_MAGIC_SYSRQ=y +CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1 +CONFIG_DEBUG_KERNEL=y + +# +# Memory Debugging +# +# CONFIG_PAGE_EXTENSION is not set +# CONFIG_DEBUG_PAGEALLOC is not set +# CONFIG_PAGE_POISONING is not set +# CONFIG_DEBUG_OBJECTS is not set +# CONFIG_DEBUG_SLAB is not set +CONFIG_HAVE_DEBUG_KMEMLEAK=y +# CONFIG_DEBUG_KMEMLEAK is not set +# CONFIG_DEBUG_STACK_USAGE is not set +# CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_MEMORY_INIT is not set +# CONFIG_DEBUG_PER_CPU_MAPS is not set +# CONFIG_DEBUG_HIGHMEM is not set +# CONFIG_DEBUG_SHIRQ is not set + +# +# Debug Lockups and Hangs +# +CONFIG_LOCKUP_DETECTOR=y +# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set +CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 +# CONFIG_DETECT_HUNG_TASK is not set +# CONFIG_WQ_WATCHDOG is not set +# CONFIG_PANIC_ON_OOPS is not set +CONFIG_PANIC_ON_OOPS_VALUE=0 +CONFIG_PANIC_TIMEOUT=0 +# CONFIG_SCHED_DEBUG is not set +# CONFIG_SCHED_INFO is not set +# CONFIG_SCHEDSTATS is not set +# CONFIG_SCHED_STACK_END_CHECK is not set +# CONFIG_DEBUG_TIMEKEEPING is not set +# CONFIG_TIMER_STATS is not set + +# +# Lock Debugging (spinlocks, mutexes, etc...) +# +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set +# CONFIG_DEBUG_LOCK_ALLOC is not set +# CONFIG_PROVE_LOCKING is not set +# CONFIG_LOCK_STAT is not set +# CONFIG_DEBUG_ATOMIC_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +# CONFIG_LOCK_TORTURE_TEST is not set +# CONFIG_STACKTRACE is not set +# CONFIG_DEBUG_KOBJECT is not set +# CONFIG_DEBUG_BUGVERBOSE is not set +# CONFIG_DEBUG_LIST is not set +# CONFIG_DEBUG_PI_LIST is not set +# CONFIG_DEBUG_SG is not set +# CONFIG_DEBUG_NOTIFIERS is not set +# CONFIG_DEBUG_CREDENTIALS is not set + +# +# RCU Debugging +# +# CONFIG_PROVE_RCU is not set +# CONFIG_SPARSE_RCU_POINTER is not set +# CONFIG_TORTURE_TEST is not set +# CONFIG_RCU_PERF_TEST is not set +# CONFIG_RCU_TORTURE_TEST is not set +CONFIG_RCU_CPU_STALL_TIMEOUT=21 +# CONFIG_RCU_TRACE is not set +# CONFIG_RCU_EQS_DEBUG is not set +# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set +# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set +# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set +# CONFIG_NOTIFIER_ERROR_INJECTION is not set +# CONFIG_FAULT_INJECTION is not set +# CONFIG_LATENCYTOP is not set +CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y +CONFIG_HAVE_SYSCALL_TRACEPOINTS=y +CONFIG_HAVE_C_RECORDMCOUNT=y +CONFIG_TRACING_SUPPORT=y +# CONFIG_FTRACE is not set + +# +# Runtime Testing +# +# CONFIG_LKDTM is not set +# CONFIG_TEST_LIST_SORT is not set +# CONFIG_BACKTRACE_SELF_TEST is not set +# CONFIG_RBTREE_TEST is not set +# CONFIG_INTERVAL_TREE_TEST is not set +# CONFIG_PERCPU_TEST is not set +# CONFIG_ATOMIC64_SELFTEST is not set +# CONFIG_TEST_HEXDUMP is not set +# CONFIG_TEST_STRING_HELPERS is not set +# CONFIG_TEST_KSTRTOX is not set +# CONFIG_TEST_PRINTF is not set +# CONFIG_TEST_BITMAP is not set +# CONFIG_TEST_UUID is not set +# CONFIG_TEST_RHASHTABLE is not set +# CONFIG_TEST_HASH is not set +# CONFIG_DMA_API_DEBUG is not set +# CONFIG_TEST_LKM is not set +# CONFIG_TEST_USER_COPY is not set +# CONFIG_TEST_BPF is not set +# CONFIG_TEST_FIRMWARE is not set +# CONFIG_TEST_UDELAY is not set +# CONFIG_MEMTEST is not set +# CONFIG_TEST_STATIC_KEYS is not set +# CONFIG_BUG_ON_DATA_CORRUPTION is not set +# CONFIG_SAMPLES is not set +CONFIG_HAVE_ARCH_KGDB=y +# CONFIG_KGDB is not set +# CONFIG_ARCH_WANTS_UBSAN_NO_NULL is not set +# CONFIG_UBSAN is not set +CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y +# CONFIG_STRICT_DEVMEM is not set +# CONFIG_ARM_PTDUMP is not set +CONFIG_ARM_UNWIND=y +CONFIG_DEBUG_USER=y +CONFIG_DEBUG_LL=y +CONFIG_DEBUG_BRCMSTB_UART=y +# CONFIG_DEBUG_ICEDCC is not set +# CONFIG_DEBUG_SEMIHOSTING is not set +# CONFIG_DEBUG_LL_UART_8250 is not set +# CONFIG_DEBUG_LL_UART_PL01X is not set +CONFIG_DEBUG_LL_INCLUDE="debug/brcmstb.S" +# CONFIG_DEBUG_UART_8250 is not set +CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h" +CONFIG_EARLY_PRINTK=y +# CONFIG_PID_IN_CONTEXTIDR is not set +# CONFIG_DEBUG_SET_MODULE_RONX is not set +# CONFIG_CORESIGHT is not set + +# +# Security options +# +CONFIG_KEYS=y +# CONFIG_PERSISTENT_KEYRINGS is not set +# CONFIG_BIG_KEYS is not set +# CONFIG_ENCRYPTED_KEYS is not set +# CONFIG_KEY_DH_OPERATIONS is not set +# CONFIG_SECURITY_DMESG_RESTRICT is not set +# CONFIG_SECURITY is not set +# CONFIG_SECURITYFS is not set +CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y +CONFIG_HAVE_ARCH_HARDENED_USERCOPY=y +# CONFIG_HARDENED_USERCOPY is not set +CONFIG_DEFAULT_SECURITY_DAC=y +CONFIG_DEFAULT_SECURITY="" +CONFIG_CRYPTO=y + +# +# Crypto core or helper +# +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_ALGAPI2=y +CONFIG_CRYPTO_AEAD=y +CONFIG_CRYPTO_AEAD2=y +CONFIG_CRYPTO_BLKCIPHER=y +CONFIG_CRYPTO_BLKCIPHER2=y +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_HASH2=y +CONFIG_CRYPTO_RNG=y +CONFIG_CRYPTO_RNG2=y +CONFIG_CRYPTO_RNG_DEFAULT=y +CONFIG_CRYPTO_AKCIPHER2=y +CONFIG_CRYPTO_KPP2=y +CONFIG_CRYPTO_ACOMP2=y +# CONFIG_CRYPTO_RSA is not set +# CONFIG_CRYPTO_DH is not set +# CONFIG_CRYPTO_ECDH is not set +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_MANAGER2=y +# CONFIG_CRYPTO_USER is not set +CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y +CONFIG_CRYPTO_GF128MUL=y +CONFIG_CRYPTO_NULL=y +CONFIG_CRYPTO_NULL2=y +# CONFIG_CRYPTO_PCRYPT is not set +CONFIG_CRYPTO_WORKQUEUE=y +CONFIG_CRYPTO_CRYPTD=y +# CONFIG_CRYPTO_MCRYPTD is not set +CONFIG_CRYPTO_AUTHENC=m +# CONFIG_CRYPTO_TEST is not set +CONFIG_CRYPTO_SIMD=m + +# +# Authenticated Encryption with Associated Data +# +CONFIG_CRYPTO_CCM=y +CONFIG_CRYPTO_GCM=m +# CONFIG_CRYPTO_CHACHA20POLY1305 is not set +CONFIG_CRYPTO_SEQIV=y +CONFIG_CRYPTO_ECHAINIV=m + +# +# Block modes +# +CONFIG_CRYPTO_CBC=y +CONFIG_CRYPTO_CTR=y +CONFIG_CRYPTO_CTS=y +CONFIG_CRYPTO_ECB=y +# CONFIG_CRYPTO_LRW is not set +# CONFIG_CRYPTO_PCBC is not set +CONFIG_CRYPTO_XTS=y +# CONFIG_CRYPTO_KEYWRAP is not set + +# +# Hash modes +# +CONFIG_CRYPTO_CMAC=y +CONFIG_CRYPTO_HMAC=y +# CONFIG_CRYPTO_XCBC is not set +# CONFIG_CRYPTO_VMAC is not set + +# +# Digest +# +CONFIG_CRYPTO_CRC32C=y +CONFIG_CRYPTO_CRC32=m +# CONFIG_CRYPTO_CRCT10DIF is not set +CONFIG_CRYPTO_GHASH=m +# CONFIG_CRYPTO_POLY1305 is not set +CONFIG_CRYPTO_MD4=y +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_MICHAEL_MIC=m +# CONFIG_CRYPTO_RMD128 is not set +# CONFIG_CRYPTO_RMD160 is not set +# CONFIG_CRYPTO_RMD256 is not set +# CONFIG_CRYPTO_RMD320 is not set +CONFIG_CRYPTO_SHA1=y +CONFIG_CRYPTO_SHA256=y +# CONFIG_CRYPTO_SHA512 is not set +# CONFIG_CRYPTO_SHA3 is not set +# CONFIG_CRYPTO_TGR192 is not set +# CONFIG_CRYPTO_WP512 is not set + +# +# Ciphers +# +CONFIG_CRYPTO_AES=y +# CONFIG_CRYPTO_ANUBIS is not set +CONFIG_CRYPTO_ARC4=y +# CONFIG_CRYPTO_BLOWFISH is not set +# CONFIG_CRYPTO_CAMELLIA is not set +# CONFIG_CRYPTO_CAST5 is not set +# CONFIG_CRYPTO_CAST6 is not set +CONFIG_CRYPTO_DES=y +# CONFIG_CRYPTO_FCRYPT is not set +# CONFIG_CRYPTO_KHAZAD is not set +# CONFIG_CRYPTO_SALSA20 is not set +# CONFIG_CRYPTO_CHACHA20 is not set +# CONFIG_CRYPTO_SEED is not set +# CONFIG_CRYPTO_SERPENT is not set +# CONFIG_CRYPTO_TEA is not set +# CONFIG_CRYPTO_TWOFISH is not set + +# +# Compression +# +CONFIG_CRYPTO_DEFLATE=y +CONFIG_CRYPTO_LZO=y +# CONFIG_CRYPTO_842 is not set +# CONFIG_CRYPTO_LZ4 is not set +# CONFIG_CRYPTO_LZ4HC is not set + +# +# Random Number Generation +# +# CONFIG_CRYPTO_ANSI_CPRNG is not set +CONFIG_CRYPTO_DRBG_MENU=y +CONFIG_CRYPTO_DRBG_HMAC=y +# CONFIG_CRYPTO_DRBG_HASH is not set +# CONFIG_CRYPTO_DRBG_CTR is not set +CONFIG_CRYPTO_DRBG=y +CONFIG_CRYPTO_JITTERENTROPY=y +# CONFIG_CRYPTO_USER_API_HASH is not set +# CONFIG_CRYPTO_USER_API_SKCIPHER is not set +# CONFIG_CRYPTO_USER_API_RNG is not set +# CONFIG_CRYPTO_USER_API_AEAD is not set +CONFIG_CRYPTO_HW=y +# CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API_DESC is not set +# CONFIG_ASYMMETRIC_KEY_TYPE is not set + +# +# Certificates for signature checking +# +CONFIG_ARM_CRYPTO=y +CONFIG_CRYPTO_SHA1_ARM=m +CONFIG_CRYPTO_SHA1_ARM_NEON=m +CONFIG_CRYPTO_SHA1_ARM_CE=m +CONFIG_CRYPTO_SHA2_ARM_CE=m +CONFIG_CRYPTO_SHA256_ARM=m +CONFIG_CRYPTO_SHA512_ARM=m +CONFIG_CRYPTO_AES_ARM=m +CONFIG_CRYPTO_AES_ARM_BS=m +CONFIG_CRYPTO_AES_ARM_CE=m +CONFIG_CRYPTO_GHASH_ARM_CE=m +CONFIG_CRYPTO_CRC32_ARM_CE=m +# CONFIG_BINARY_PRINTF is not set + +# +# Library routines +# +CONFIG_BITREVERSE=y +CONFIG_HAVE_ARCH_BITREVERSE=y +CONFIG_RATIONAL=y +CONFIG_GENERIC_STRNCPY_FROM_USER=y +CONFIG_GENERIC_STRNLEN_USER=y +CONFIG_GENERIC_NET_UTILS=y +CONFIG_GENERIC_PCI_IOMAP=y +CONFIG_GENERIC_IO=y +CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y +CONFIG_CRC_CCITT=y +CONFIG_CRC16=y +# CONFIG_CRC_T10DIF is not set +CONFIG_CRC_ITU_T=y +CONFIG_CRC32=y +# CONFIG_CRC32_SELFTEST is not set +CONFIG_CRC32_SLICEBY8=y +# CONFIG_CRC32_SLICEBY4 is not set +# CONFIG_CRC32_SARWATE is not set +# CONFIG_CRC32_BIT is not set +CONFIG_CRC7=m +CONFIG_LIBCRC32C=m +# CONFIG_CRC8 is not set +# CONFIG_AUDIT_ARCH_COMPAT_GENERIC is not set +# CONFIG_RANDOM32_SELFTEST is not set +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=y +CONFIG_LZO_COMPRESS=y +CONFIG_LZO_DECOMPRESS=y +# CONFIG_XZ_DEC is not set +# CONFIG_XZ_DEC_BCJ is not set +CONFIG_DECOMPRESS_GZIP=y +CONFIG_GENERIC_ALLOCATOR=y +CONFIG_ASSOCIATIVE_ARRAY=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT_MAP=y +CONFIG_HAS_DMA=y +CONFIG_CPU_RMAP=y +CONFIG_DQL=y +CONFIG_GLOB=y +# CONFIG_GLOB_SELFTEST is not set +CONFIG_NLATTR=y +# CONFIG_CORDIC is not set +# CONFIG_DDR is not set +# CONFIG_IRQ_POLL is not set +CONFIG_LIBFDT=y +CONFIG_OID_REGISTRY=y +# CONFIG_SG_SPLIT is not set +CONFIG_SG_POOL=y +CONFIG_ARCH_HAS_SG_CHAIN=y +CONFIG_SBITMAP=y +# CONFIG_VIRTUALIZATION is not set diff --git a/archive-patches/armbox/hd51_export_pmpoweroffprepare.patch b/archive-patches/armbox/hd51_export_pmpoweroffprepare.patch new file mode 100644 index 0000000..f832e8f --- /dev/null +++ b/archive-patches/armbox/hd51_export_pmpoweroffprepare.patch @@ -0,0 +1,12 @@ +diff --git a/kernel/reboot.c b/kernel/reboot.c +index bd30a97..a6903bf 100644 +--- a/kernel/reboot.c ++++ b/kernel/reboot.c +@@ -49,6 +49,7 @@ + */ + + void (*pm_power_off_prepare)(void); ++EXPORT_SYMBOL(pm_power_off_prepare); + + /** + * emergency_restart - reboot the system diff --git a/archive-patches/armbox/hd51_reserve_dvb_adapter_0.patch b/archive-patches/armbox/hd51_reserve_dvb_adapter_0.patch new file mode 100644 index 0000000..d42fd86 --- /dev/null +++ b/archive-patches/armbox/hd51_reserve_dvb_adapter_0.patch @@ -0,0 +1,13 @@ +diff --git a/drivers/media/dvb-core/dvbdev.c b/drivers/media/dvb-core/dvbdev.c +index 560450a..eb1a212 100644 +--- a/drivers/media/dvb-core/dvbdev.c ++++ b/drivers/media/dvb-core/dvbdev.c +@@ -789,7 +789,7 @@ static int dvbdev_check_free_adapter_num(int num) + + static int dvbdev_get_free_adapter_num (void) + { +- int num = 0; ++ int num = 1; + + while (num < DVB_MAX_ADAPTERS) { + if (dvbdev_check_free_adapter_num(num)) diff --git a/archive-patches/host-mtd-utils-1.5.2.patch b/archive-patches/host-mtd-utils-1.5.2.patch new file mode 100644 index 0000000..628aa6e --- /dev/null +++ b/archive-patches/host-mtd-utils-1.5.2.patch @@ -0,0 +1,16 @@ +--- a/Makefile ++++ b/Makefile +@@ -62,11 +62,8 @@ endif + $(MAKE) -C $(TESTS) clean + + install:: $(addprefix $(BUILDDIR)/,${BINS}) ${SCRIPTS} +- mkdir -p ${DESTDIR}/${SBINDIR} +- install -m 0755 $^ ${DESTDIR}/${SBINDIR}/ +- mkdir -p ${DESTDIR}/${MANDIR}/man1 +- install -m 0644 mkfs.jffs2.1 ${DESTDIR}/${MANDIR}/man1/ +- -gzip -9f ${DESTDIR}/${MANDIR}/man1/*.1 ++ mkdir -p ${DESTDIR}/${BINDIR} ++ install -m 0755 $^ ${DESTDIR}/${BINDIR}/ + + tests:: + $(MAKE) -C $(TESTS) diff --git a/archive-patches/module-init-tools-3.16.patch b/archive-patches/module-init-tools-3.16.patch new file mode 100644 index 0000000..842ec71 --- /dev/null +++ b/archive-patches/module-init-tools-3.16.patch @@ -0,0 +1,29 @@ +--- a/Makefile.am ++++ b/Makefile.am +@@ -40,7 +40,6 @@ + modules.dep.5 modules.dep.bin.5 + MAN8 = depmod.8 insmod.8 lsmod.8 rmmod.8 modprobe.8 modinfo.8 + SGML = $(addprefix doc/, $(MAN5:%.5=%.sgml) $(MAN8:%.8=%.sgml)) +-dist_man_MANS = $(MAN5) $(MAN8) + # If they haven't overridden mandir, fix it (never /man!) + mandir =$(shell if [ @mandir@ = $(prefix)/man ]; then if [ $(prefix) = / ]; then echo /usr/share/man; else echo $(prefix)/share/man; fi; else echo @mandir@; fi) + +--- a/configure.ac ++++ b/configure.ac +@@ -29,13 +29,12 @@ + AC_PROG_CC + AC_PROG_RANLIB + +-AC_CHECK_PROGS(DOCBOOKTOMAN, docbook-to-man docbook2man, [no],) +-if test x"$DOCBOOKTOMAN" = xno ++AC_CHECK_PROGS(DOCBOOKTOMAN, docbook-to-man docbook2man) ++if test x"$DOCBOOKTOMAN" = x + then + AC_MSG_WARN([docbook2man not found]) +- # fail with a meaningfull error if $DOCBOOKTOMAN called by the makefile +- DOCBOOKTOMAN=docbook2man + fi ++AM_CONDITIONAL([HAVE_DOCBOOKTOMAN], [test "x$DOCBOOKTOMAN" != "x"]) + + # Delay adding the zlib_flags until after AC_PROG_CC, so we can distinguish + # between a broken cc and a working cc but missing libz.a. diff --git a/make/applications.mk b/make/applications.mk index e54d797..3b7c1b1 100755 --- a/make/applications.mk +++ b/make/applications.mk @@ -285,23 +285,16 @@ MTD_BUILDS_HOST = \ $(MTD_BUILDDIR)/sumtool \ $(MTD_BUILDDIR)/jffs2reader \ $(MTD_BUILDDIR)/jffs2dump - MTD_BUILDS = \ $(MTD_BUILDDIR)/flash_erase else MTD_BUILDDIR = `pwd`/build -MTD_BUILDS_HOST = \ - $(MTD_BUILDDIR)/mkfs.jffs2 \ - $(MTD_BUILDDIR)/sumtool \ - $(MTD_BUILDDIR)/jffs2reader \ - $(MTD_BUILDDIR)/jffs2dump - MTD_BUILDS = \ $(MTD_BUILDDIR)/flash_erase \ $(MTD_BUILDDIR)/nanddump \ $(MTD_BUILDDIR)/nandwrite \ $(MTD_BUILDDIR)/nandtest -endif # ifeq ($(PLATFORM), nevis) +endif $(D)/mtd-utils: $(ARCHIVE)/mtd-utils-$(MTD_UTILS_VER).tar.bz2 $(D)/zlib | $(TARGETPREFIX) $(START_BUILD) # build for target @@ -317,18 +310,8 @@ $(D)/mtd-utils: $(ARCHIVE)/mtd-utils-$(MTD_UTILS_VER).tar.bz2 $(D)/zlib | $(TARG mkdir -p $(TARGETPREFIX)/sbin; \ $(TARGET)-strip $(MTD_BUILDS); \ cp -a $(MTD_BUILDS) $(TARGETPREFIX)/sbin; \ - # build for host - cd $(BUILD_TMP); \ - rm -rf $(BUILD_TMP)/mtd-utils-$(MTD_UTILS_VER); \ - $(UNTAR)/mtd-utils-$(MTD_UTILS_VER).tar.bz2; \ - set -e; cd $(BUILD_TMP)/mtd-utils-$(MTD_UTILS_VER); \ - $(MAKE) $(MTD_BUILDS_HOST) BUILDDIR=$(MTD_BUILDDIR) WITHOUT_XATTR=1 WITHOUT_LZO=1 \ - X_LDSTATIC="/usr/lib" - cd $(BUILD_TMP)/mtd-utils-$(MTD_UTILS_VER); \ - strip $(MTD_BUILDS_HOST); \ - cp -a $(MTD_BUILDS_HOST) $(HOSTPREFIX)/bin; \ - rm -rf $(BUILD_TMP)/mtd-utils-$(MTD_UTILS_VER) $(BUILD_TMP)/.remove - $(TOUCH) + $(REMOVE)/mtd-utils-$(MTD_UTILS_VER) $(BUILD_TMP)/.remove + $(TOUCH) # SAMBA ifeq ($(PLATFORM), nevis) diff --git a/make/archives.mk b/make/archives.mk index 72bef05..243fad3 100755 --- a/make/archives.mk +++ b/make/archives.mk @@ -144,6 +144,9 @@ $(ARCHIVE)/strace-4.6.tar.xz: $(ARCHIVE)/e2fsprogs-$(E2FSPROGS_VER).tar.gz: $(WGET) http://sourceforge.net/projects/e2fsprogs/files/e2fsprogs/v$(E2FSPROGS_VER)/e2fsprogs-$(E2FSPROGS_VER).tar.gz +$(ARCHIVE)/e2fsprogs-$(HOST_E2FSPROGS_VER).tar.gz: + $(WGET) https://sourceforge.net/projects/e2fsprogs/files/e2fsprogs/v$(HOST_E2FSPROGS_VER)/e2fsprogs-$(HOST_E2FSPROGS_VER).tar.gz + $(ARCHIVE)/xfsprogs-3.1.11.tar.gz: $(WGET) http://www.fhloston-paradise.de/xfsprogs-3.1.11.tar.gz @@ -183,9 +186,21 @@ $(ARCHIVE)/util-linux-2.20.tar.bz2: $(ARCHIVE)/hddtemp-0.3-beta15.tar.bz2: $(WGET) http://www.fhloston-paradise.de/hddtemp-0.3-beta15.tar.bz2 +$(ARCHIVE)/module-init-tools-$(MODULE_INIT_TOOLS_VER).tar.bz2: + $(WGET) ftp.europeonline.com/pub/linux/utils/kernel/module-init-tools/module-init-tools-$(MODULE_INIT_TOOLS_VER).tar.bz2 + $(ARCHIVE)/mtd-utils-$(MTD_UTILS_VER).tar.bz2: $(WGET) ftp://ftp.infradead.org/pub/mtd-utils/mtd-utils-$(MTD_UTILS_VER).tar.bz2 +$(ARCHIVE)/cramfs-$(HOST_MKCRAMFS_VER).tar.gz: + $(WGET) https://sourceforge.net/projects/cramfs/files/cramfs/$(HOST_MKCRAMFS_VER)/cramfs-$(HOST_MKCRAMFS_VER).tar.gz + +$(ARCHIVE)/squashfs$(HOST_MKSQUASHFS_VER).tar.gz: + $(WGET) https://sourceforge.net/projects/squashfs/files/squashfs/squashfs$(HOST_MKSQUASHFS_VER)/squashfs$(HOST_MKSQUASHFS_VER).tar.gz + +$(ARCHIVE)/lzma-$(LZMA_VER).tar.bz2: + $(WGET) http://downloads.openwrt.org/sources/lzma-$(LZMA_VER).tar.bz2 + $(ARCHIVE)/wpa_supplicant-0.7.3.tar.gz: $(WGET) http://www.fhloston-paradise.de/wpa_supplicant-0.7.3.tar.gz diff --git a/make/bootstrap.mk b/make/bootstrap.mk index 6c48414..c5481e5 100755 --- a/make/bootstrap.mk +++ b/make/bootstrap.mk @@ -1,5 +1,27 @@ # makefile for bootstrap +# bootstrap.mk +BOOTSTRAP = targetprefix $(BUILD_TMP) $(CROSS_BASE) $(HOSTPREFIX)/bin +BOOTSTRAP += includes-and-libs modules +BOOTSTRAP += $(TARGETPREFIX)/lib/libc.so.6 +BOOTSTRAP += $(ARCHIVE) +BOOTSTRAP += $(HOSTPREFIX)/bin/get-git-archive.sh +BOOTSTRAP += $(D)/host_pkgconfig +BOOTSTRAP += $(D)/host_module_init_tools +BOOTSTRAP += $(D)/host_mtd-utils +BOOTSTRAP += $(D)/host_mkcramfs +BOOTSTRAP += $(D)/host_mksquashfs +ifeq ($(BOXTYPE), armbox) +BOOTSTRAP += $(D)/host_resize2fs +BOOTSTRAP += $(D)/cortex-strings +endif +ifeq ($(BOXSERIES), hd2) +BOOTSTRAP += $(D)/cortex-strings +endif + +bootstrap: $(BOOTSTRAP) + + targetprefix: mkdir -p $(TARGETPREFIX) mkdir -p $(TARGETPREFIX)/bin @@ -17,23 +39,139 @@ $(TARGETPREFIX): @echo "" @false -pkg-config-preqs: +pkgconfig-preqs: @PATH=$(subst $(HOSTPREFIX)/bin:,,$(PATH)); \ if ! pkg-config --exists glib-2.0; then \ echo "pkg-config and glib2-devel packages are needed for building cross-pkg-config."; false; \ fi -pkg-config: $(HOSTPREFIX)/bin/pkg-config -$(HOSTPREFIX)/bin/pkg-config: $(ARCHIVE)/pkg-config-$(PKGCONFIG_VER).tar.gz | $(HOSTPREFIX)/bin pkg-config-preqs - $(UNTAR)/pkg-config-$(PKGCONFIG_VER).tar.gz - set -e; cd $(BUILD_TMP)/pkg-config-$(PKGCONFIG_VER); \ +# +# host pkg-config +# +$(D)/host_pkgconfig: $(HOSTPREFIX)/bin/pkg-config +$(HOSTPREFIX)/bin/pkg-config: $(ARCHIVE)/pkg-config-$(HOST_PKGCONFIG_VER).tar.gz | $(HOSTPREFIX)/bin pkgconfig-preqs + $(START_BUILD) + $(UNTAR)/pkg-config-$(HOST_PKGCONFIG_VER).tar.gz + set -e; cd $(BUILD_TMP)/pkg-config-$(HOST_PKGCONFIG_VER); \ ./configure \ --disable-host-tool \ --with-pc_path=$(PKG_CONFIG_PATH); \ $(MAKE); \ cp -a pkg-config $(HOSTPREFIX)/bin; \ ln -sf pkg-config $(HOSTPREFIX)/bin/$(TARGET)-pkg-config - $(REMOVE)/pkg-config-$(PKGCONFIG_VER) + $(REMOVE)/pkg-config-$(HOST_PKGCONFIG_VER) + $(TOUCH) + +# +# host_module_init_tools +# +$(D)/host_module_init_tools: $(ARCHIVE)/module-init-tools-$(MODULE_INIT_TOOLS_VER).tar.bz2 + $(START_BUILD) + $(REMOVE)/module-init-tools-$(MODULE_INIT_TOOLS_VER) + $(UNTAR)/module-init-tools-$(MODULE_INIT_TOOLS_VER).tar.bz2 + set -e; cd $(BUILD_TMP)/module-init-tools-$(MODULE_INIT_TOOLS_VER); \ + $(PATCH)/module-init-tools-$(MODULE_INIT_TOOLS_VER).patch; \ + autoreconf -fi $(SILENT_OPT); \ + ./configure $(SILENT_OPT) \ + --prefix=$(HOSTPREFIX) \ + --sbindir=$(HOSTPREFIX)/bin \ + ; \ + $(MAKE); \ + $(MAKE) install + $(REMOVE)/module-init-tools-$(MODULE_INIT_TOOLS_VER) + $(TOUCH) + +# +# host mtd-utils +# +$(D)/host_mtd-utils: $(ARCHIVE)/mtd-utils-$(HOST_MTD_UTILS_VER).tar.bz2 + $(START_BUILD) + $(REMOVE)/mtd-utils-$(HOST_MTD_UTILS_VER) + $(UNTAR)/mtd-utils-$(HOST_MTD_UTILS_VER).tar.bz2 + set -e; cd $(BUILD_TMP)/mtd-utils-$(HOST_MTD_UTILS_VER); \ + $(PATCH)/host-mtd-utils-$(HOST_MTD_UTILS_VER).patch; \ + $(MAKE) `pwd`/mkfs.jffs2 `pwd`/sumtool BUILDDIR=`pwd` WITHOUT_XATTR=1 DESTDIR=$(HOSTPREFIX); \ + $(REMOVE)/mtd-utils-$(HOST_MTD_UTILS_VER) + $(TOUCH) + +# +# host_mkcramfs +# +$(D)/host_mkcramfs: $(ARCHIVE)/cramfs-$(HOST_MKCRAMFS_VER).tar.gz + $(START_BUILD) + $(REMOVE)/cramfs-$(HOST_MKCRAMFS_VER) + $(UNTAR)/cramfs-$(HOST_MKCRAMFS_VER).tar.gz + set -e; cd $(BUILD_TMP)/cramfs-$(HOST_MKCRAMFS_VER); \ + $(MAKE) all + cp $(BUILD_TMP)/cramfs-$(HOST_MKCRAMFS_VER)/mkcramfs $(HOSTPREFIX)/bin + cp $(BUILD_TMP)/cramfs-$(HOST_MKCRAMFS_VER)/cramfsck $(HOSTPREFIX)/bin + $(REMOVE)/cramfs-$(HOST_MKCRAMFS_VER) + $(TOUCH) + +# +# host_mksquashfs with LZMA support +# +$(D)/host_mksquashfs: $(ARCHIVE)/lzma-$(LZMA_VER).tar.bz2 $(ARCHIVE)/squashfs$(HOST_MKSQUASHFS_VER).tar.gz + $(START_BUILD) + $(REMOVE)/lzma-$(LZMA_VER) + $(UNTAR)/lzma-$(LZMA_VER).tar.bz2 + $(REMOVE)/squashfs$(HOST_MKSQUASHFS_VER) + $(UNTAR)/squashfs$(HOST_MKSQUASHFS_VER).tar.gz + set -e; cd $(BUILD_TMP)/squashfs$(HOST_MKSQUASHFS_VER); \ + $(MAKE) -C squashfs-tools \ + LZMA_SUPPORT=1 \ + LZMA_DIR=$(BUILD_TMP)/lzma-$(LZMA_VER) \ + XATTR_SUPPORT=0 \ + XATTR_DEFAULT=0 \ + install INSTALL_DIR=$(HOSTPREFIX)/bin + $(REMOVE)/lzma-$(LZMA_VER) + $(REMOVE)/squashfs$(HOST_MKSQUASHFS_VER) + $(TOUCH) + +# +# host_resize2fs +# +$(D)/host_resize2fs: $(ARCHIVE)/e2fsprogs-$(HOST_E2FSPROGS_VER).tar.gz + $(START_BUILD) + $(UNTAR)/e2fsprogs-$(HOST_E2FSPROGS_VER).tar.gz + set -e; cd $(BUILD_TMP)/e2fsprogs-$(HOST_E2FSPROGS_VER); \ + ./configure $(SILENT_OPT); \ + $(MAKE) + install -D -m 0755 $(BUILD_TMP)/e2fsprogs-$(HOST_E2FSPROGS_VER)/resize/resize2fs $(HOSTPREFIX)/bin/ + install -D -m 0755 $(BUILD_TMP)/e2fsprogs-$(HOST_E2FSPROGS_VER)/misc/mke2fs $(HOSTPREFIX)/bin/ + ln -sf mke2fs $(HOSTPREFIX)/bin/mkfs.ext2 + ln -sf mke2fs $(HOSTPREFIX)/bin/mkfs.ext3 + ln -sf mke2fs $(HOSTPREFIX)/bin/mkfs.ext4 + ln -sf mke2fs $(HOSTPREFIX)/bin/mkfs.ext4dev + install -D -m 0755 $(BUILD_TMP)/e2fsprogs-$(HOST_E2FSPROGS_VER)/e2fsck/e2fsck $(HOSTPREFIX)/bin/ + ln -sf e2fsck $(HOSTPREFIX)/bin/fsck.ext2 + ln -sf e2fsck $(HOSTPREFIX)/bin/fsck.ext3 + ln -sf e2fsck $(HOSTPREFIX)/bin/fsck.ext4 + ln -sf e2fsck $(HOSTPREFIX)/bin/fsck.ext4dev + $(REMOVE)/e2fsprogs-$(HOST_E2FSPROGS_VER) + $(TOUCH) + +# +# cortex-strings +# +CORTEX-STRINGS_CONF = +ifneq ($(BOXSERIES), hd51) + CORTEX-STRINGS_CONF = --without-neon +endif +$(D)/cortex-strings: $(ARCHIVE)/cortex-strings-git-$(CORTEX_STRINGS_VER).tar.gz | $(TARGETPREFIX) + $(START_BUILD) + $(UNTAR)/cortex-strings-git-$(CORTEX_STRINGS_VER).tar.gz + set -e; cd $(BUILD_TMP)/cortex-strings-git-$(CORTEX_STRINGS_VER); \ + $(CONFIGURE) + --prefix= \ + --disable-shared \ + --enable-static \ + $(CORTEX-STRINGS_CONF); \ + $(MAKE); \ + make install DESTDIR=$(TARGETPREFIX) + $(REWRITE_LIBTOOL)/libcortex-strings.la + $(REMOVE)/cortex-strings-git-$(CORTEX_STRINGS_VER) + $(TOUCH) skeleton: | $(TARGETPREFIX) $(START_BUILD) diff --git a/make/cleantargets.mk b/make/cleantargets.mk index 9a4e606..3d12adf 100755 --- a/make/cleantargets.mk +++ b/make/cleantargets.mk @@ -28,11 +28,6 @@ flashimage-clean: -rm -f $(BUILD_TMP)/*system* -rm -f $(BUILD_TMP)/*full* -kernel-clean: - -rm -rf $(BUILD_TMP)/*linux* - -rm -f $(BUILD_TMP)/*kernel* - -rm -f $(D)/coolstream-kernel* - #libraries-clean: # -rm -rf $(BUILD_TMP)/rootfs diff --git a/make/environment.mk b/make/environment.mk index 4126500..ba9dcf0 100755 --- a/make/environment.mk +++ b/make/environment.mk @@ -31,6 +31,8 @@ BUILD ?= $(shell /usr/share/libtool/config.guess 2>/dev/null || /usr/share GCC = $(shell gcc -dumpversion | cut -c 1-3) +SILENT_OPT := >/dev/null 2>&1 +SILENT := @ ifeq ($(BOXMODEL), $(filter $(BOXMODEL), zee2 link)) BOXTYPE = coolstream @@ -66,6 +68,7 @@ else ifeq ($(BOXMODEL), hd51) PLATFORM = bcm7251s DRIVER_DIR ?= $(PLATFORM) KERNEL_VER = 4.10.12 + KERNEL_VERSION_FULL = $(KERNEL_VER) KERNEL_DATE = 20171103 KERNEL_TYPE = hd51 KERNEL_SRC = linux-$(KERNEL_VER)-arm.tar.gz diff --git a/make/flashimage.mk b/make/flashimage.mk index 8a2792a..acc9495 100755 --- a/make/flashimage.mk +++ b/make/flashimage.mk @@ -2,6 +2,107 @@ DATE := $(shell date +%Y-%m-%d) +### armbox hd51 +IMAGE_PREFIX = hd51_KEYWELT + +# general +HD51_IMAGE_NAME = disk +HD51_BOOT_IMAGE = boot.img +HD51_IMAGE_LINK = $(HD51_IMAGE_NAME).ext4 +HD51_IMAGE_ROOTFS_SIZE = 294912 +HD51_BUILD_TMP = $(BUILD_TMP)/build-tmp +RELEASE_DIR = $(BUILD_TMP)/install +IMAGE_DIR = $(BUILD_TMP)/image + +# emmc image +EMMC_IMAGE_SIZE = 3817472 +EMMC_IMAGE = $(HD51_BUILD_TMP)/$(HD51_IMAGE_NAME).img + +# partition sizes +BLOCK_SIZE = 512 +BLOCK_SECTOR = 2 +IMAGE_ROOTFS_ALIGNMENT = 1024 +BOOT_PARTITION_SIZE = 3072 +KERNEL_PARTITION_OFFSET = $(shell expr $(IMAGE_ROOTFS_ALIGNMENT) \+ $(BOOT_PARTITION_SIZE)) +KERNEL_PARTITION_SIZE = 8192 +ROOTFS_PARTITION_OFFSET = $(shell expr $(KERNEL_PARTITION_OFFSET) \+ $(KERNEL_PARTITION_SIZE)) +ROOTFS_PARTITION_SIZE_MULTI = 819200 +SECOND_KERNEL_PARTITION_OFFSET = $(shell expr $(ROOTFS_PARTITION_OFFSET) \+ $(ROOTFS_PARTITION_SIZE_MULTI)) + +SECOND_ROOTFS_PARTITION_OFFSET = $(shell expr $(SECOND_KERNEL_PARTITION_OFFSET) \+ $(KERNEL_PARTITION_SIZE)) +THIRD_KERNEL_PARTITION_OFFSET = $(shell expr $(SECOND_ROOTFS_PARTITION_OFFSET) \+ $(ROOTFS_PARTITION_SIZE_MULTI)) +THIRD_ROOTFS_PARTITION_OFFSET = $(shell expr $(THIRD_KERNEL_PARTITION_OFFSET) \+ $(KERNEL_PARTITION_SIZE)) +FOURTH_KERNEL_PARTITION_OFFSET = $(shell expr $(THIRD_ROOTFS_PARTITION_OFFSET) \+ $(ROOTFS_PARTITION_SIZE_MULTI)) +FOURTH_ROOTFS_PARTITION_OFFSET = $(shell expr $(FOURTH_KERNEL_PARTITION_OFFSET) \+ $(KERNEL_PARTITION_SIZE)) +SWAP_PARTITION_OFFSET = $(shell expr $(FOURTH_ROOTFS_PARTITION_OFFSET) \+ $(ROOTFS_PARTITION_SIZE_MULTI)) + +flash-image-hd51-multi-disk: IMAGE_NAME=$(shell cat $(RELEASE_DIR)/.version | grep "^imagename=" | cut -d= -f2) +flash-image-hd51-multi-disk: + mkdir -p $(HD51_BUILD_TMP) + rm -rf $(IMAGE_DIR)/$(BOXMODEL) + # Create a sparse image block + dd if=/dev/zero of=$(HD51_BUILD_TMP)/$(HD51_IMAGE_LINK) seek=$(shell expr $(HD51_IMAGE_ROOTFS_SIZE) \* $(BLOCK_SECTOR)) count=0 bs=$(BLOCK_SIZE) + mkfs.ext4 -F $(HD51_BUILD_TMP)/$(HD51_IMAGE_LINK) -d $(RELEASE_DIR) + # Error codes 0-3 indicate successfull operation of fsck (no errors or errors corrected) + fsck.ext4 -pvfD $(HD51_BUILD_TMP)/$(HD51_IMAGE_LINK) || [ $? -le 3 ] + dd if=/dev/zero of=$(EMMC_IMAGE) bs=$(BLOCK_SIZE) count=0 seek=$(shell expr $(EMMC_IMAGE_SIZE) \* $(BLOCK_SECTOR)) + parted -s $(EMMC_IMAGE) mklabel gpt + parted -s $(EMMC_IMAGE) unit KiB mkpart boot fat16 $(IMAGE_ROOTFS_ALIGNMENT) $(shell expr $(IMAGE_ROOTFS_ALIGNMENT) \+ $(BOOT_PARTITION_SIZE)) + parted -s $(EMMC_IMAGE) unit KiB mkpart kernel1 $(KERNEL_PARTITION_OFFSET) $(shell expr $(KERNEL_PARTITION_OFFSET) \+ $(KERNEL_PARTITION_SIZE)) + parted -s $(EMMC_IMAGE) unit KiB mkpart rootfs1 ext4 $(ROOTFS_PARTITION_OFFSET) $(shell expr $(ROOTFS_PARTITION_OFFSET) \+ $(ROOTFS_PARTITION_SIZE_MULTI)) + parted -s $(EMMC_IMAGE) unit KiB mkpart kernel2 $(SECOND_KERNEL_PARTITION_OFFSET) $(shell expr $(SECOND_KERNEL_PARTITION_OFFSET) \+ $(KERNEL_PARTITION_SIZE)) + parted -s $(EMMC_IMAGE) unit KiB mkpart rootfs2 ext4 $(SECOND_ROOTFS_PARTITION_OFFSET) $(shell expr $(SECOND_ROOTFS_PARTITION_OFFSET) \+ $(ROOTFS_PARTITION_SIZE_MULTI)) + parted -s $(EMMC_IMAGE) unit KiB mkpart kernel3 $(THIRD_KERNEL_PARTITION_OFFSET) $(shell expr $(THIRD_KERNEL_PARTITION_OFFSET) \+ $(KERNEL_PARTITION_SIZE)) + parted -s $(EMMC_IMAGE) unit KiB mkpart rootfs3 ext4 $(THIRD_ROOTFS_PARTITION_OFFSET) $(shell expr $(THIRD_ROOTFS_PARTITION_OFFSET) \+ $(ROOTFS_PARTITION_SIZE_MULTI)) + parted -s $(EMMC_IMAGE) unit KiB mkpart kernel4 $(FOURTH_KERNEL_PARTITION_OFFSET) $(shell expr $(FOURTH_KERNEL_PARTITION_OFFSET) \+ $(KERNEL_PARTITION_SIZE)) + parted -s $(EMMC_IMAGE) unit KiB mkpart rootfs4 ext4 $(FOURTH_ROOTFS_PARTITION_OFFSET) $(shell expr $(FOURTH_ROOTFS_PARTITION_OFFSET) \+ $(ROOTFS_PARTITION_SIZE_MULTI)) + parted -s $(EMMC_IMAGE) unit KiB mkpart swap linux-swap $(SWAP_PARTITION_OFFSET) $(shell expr $(EMMC_IMAGE_SIZE) \- 1024) + dd if=/dev/zero of=$(HD51_BUILD_TMP)/$(HD51_BOOT_IMAGE) bs=$(BLOCK_SIZE) count=$(shell expr $(BOOT_PARTITION_SIZE) \* $(BLOCK_SECTOR)) + mkfs.msdos -S 512 $(HD51_BUILD_TMP)/$(HD51_BOOT_IMAGE) + echo "boot emmcflash0.kernel1 'brcm_cma=520M@248M brcm_cma=200M@768M root=/dev/mmcblk0p3 rw rootwait $(BOXMODEL)_4.boxmode=12'" > $(HD51_BUILD_TMP)/STARTUP + echo "boot emmcflash0.kernel1 'brcm_cma=520M@248M brcm_cma=200M@768M root=/dev/mmcblk0p3 rw rootwait $(BOXMODEL)_4.boxmode=12'" > $(HD51_BUILD_TMP)/STARTUP_1 + echo "boot emmcflash0.kernel2 'brcm_cma=520M@248M brcm_cma=200M@768M root=/dev/mmcblk0p5 rw rootwait $(BOXMODEL)_4.boxmode=12'" > $(HD51_BUILD_TMP)/STARTUP_2 + echo "boot emmcflash0.kernel3 'brcm_cma=520M@248M brcm_cma=200M@768M root=/dev/mmcblk0p7 rw rootwait $(BOXMODEL)_4.boxmode=12'" > $(HD51_BUILD_TMP)/STARTUP_3 + echo "boot emmcflash0.kernel4 'brcm_cma=520M@248M brcm_cma=200M@768M root=/dev/mmcblk0p9 rw rootwait $(BOXMODEL)_4.boxmode=12'" > $(HD51_BUILD_TMP)/STARTUP_4 + mcopy -i $(HD51_BUILD_TMP)/$(HD51_BOOT_IMAGE) -v $(HD51_BUILD_TMP)/STARTUP :: + mcopy -i $(HD51_BUILD_TMP)/$(HD51_BOOT_IMAGE) -v $(HD51_BUILD_TMP)/STARTUP_1 :: + mcopy -i $(HD51_BUILD_TMP)/$(HD51_BOOT_IMAGE) -v $(HD51_BUILD_TMP)/STARTUP_2 :: + mcopy -i $(HD51_BUILD_TMP)/$(HD51_BOOT_IMAGE) -v $(HD51_BUILD_TMP)/STARTUP_3 :: + mcopy -i $(HD51_BUILD_TMP)/$(HD51_BOOT_IMAGE) -v $(HD51_BUILD_TMP)/STARTUP_4 :: + dd conv=notrunc if=$(HD51_BUILD_TMP)/$(HD51_BOOT_IMAGE) of=$(EMMC_IMAGE) bs=$(BLOCK_SIZE) seek=$(shell expr $(IMAGE_ROOTFS_ALIGNMENT) \* $(BLOCK_SECTOR)) + dd conv=notrunc if=$(ZIMAGE_DTB) of=$(EMMC_IMAGE) bs=$(BLOCK_SIZE) seek=$(shell expr $(KERNEL_PARTITION_OFFSET) \* $(BLOCK_SECTOR)) + resize2fs $(HD51_BUILD_TMP)/$(HD51_IMAGE_LINK) $(ROOTFS_PARTITION_SIZE_MULTI)k + # Truncate on purpose + dd if=$(HD51_BUILD_TMP)/$(HD51_IMAGE_LINK) of=$(EMMC_IMAGE) bs=$(BLOCK_SIZE) seek=$(shell expr $(ROOTFS_PARTITION_OFFSET) \* $(BLOCK_SECTOR)) count=$(shell expr $(HD51_IMAGE_ROOTFS_SIZE) \* $(BLOCK_SECTOR)) + # Create final USB-image + mkdir -p $(IMAGE_DIR)/$(BOXMODEL) + cp $(ZIMAGE_DTB) $(IMAGE_DIR)/$(BOXMODEL)/kernel.bin + cp $(EMMC_IMAGE) $(IMAGE_DIR)/$(BOXMODEL) + cd $(RELEASE_DIR); \ + tar -cvf $(IMAGE_DIR)/$(BOXMODEL)/rootfs.tar --exclude=zImage* -C $(RELEASE_DIR) . > /dev/null 2>&1; \ + bzip2 $(IMAGE_DIR)/$(BOXMODEL)/rootfs.tar + echo $(BOXMODEL)_$(IMAGE_NAME)_usb_$(shell date '+%d%m%Y-%H%M%S') > $(IMAGE_DIR)/$(BOXMODEL)/imageversion + cd $(IMAGE_DIR); \ + zip -r $(BUILD_TMP)/$(BOXMODEL)_multi_usb_$(shell date '+%d.%m.%Y-%H.%M').zip $(BOXMODEL)/rootfs.tar.bz2 $(BOXMODEL)/kernel.bin $(BOXMODEL)/disk.img $(BOXMODEL)/imageversion + # cleanup + rm -rf $(IMAGE_DIR)/$(BOXMODEL) + rm -rf $(HD51_BUILD_TMP) + +flash-image-hd51-multi-rootfs: IMAGE_NAME=$(shell cat $(RELEASE_DIR)/.version | grep "^imagename=" | cut -d= -f2) +flash-image-hd51-multi-rootfs: + mkdir -p $(IMAGE_DIR)/$(BOXMODEL) + cp $(ZIMAGE_DTB) $(IMAGE_DIR)/$(BOXMODEL)/kernel.bin + cd $(RELEASE_DIR); \ + tar -cvf $(IMAGE_DIR)/$(BOXMODEL)/rootfs.tar --exclude=zImage* -C $(RELEASE_DIR) . > /dev/null 2>&1; \ + bzip2 $(IMAGE_DIR)/$(BOXMODEL)/rootfs.tar + echo $(BOXMODEL)_$(IMAGE_NAME)_ofg_$(shell date '+%d%m%Y-%H%M%S') > $(IMAGE_DIR)/$(BOXMODEL)/imageversion + # Create minimal image + cd $(IMAGE_DIR); \ + zip -r $(BUILD_TMP)/$(BOXMODEL)_multi_ofg_$(shell date '+%d.%m.%Y-%H.%M').zip $(BOXMODEL)/rootfs.tar.bz2 $(BOXMODEL)/kernel.bin $(BOXMODEL)/disk.img $(BOXMODEL)/imageversion + rm -rf $(IMAGE_DIR)/$(BOXMODEL) + + +### end hd51 flash-customize: $(BASE_DIR)/customize/flash-customize.sh $(START_BUILD) @@ -32,16 +133,16 @@ else FLASHIMG = $(FLASHIMG_BODY).img SUMIMG = $(SUMIMG_BODY).sum.img endif +endif #($(PLATFORM), $(filter $(PLATFORM), apollo kronos)) -else # Nevis +ifeq ($(PLATFORM), nevis) FLASHPARAMS = -p ERASEBLOCK = 0x20000 FLASHSIZE = 28835840 FLASHIMG_BODY = nevis-system FLASHIMG = $(FLASHIMG_BODY).img SUMIMG = $(FLASHIMG_BODY).sum.img - -endif #($(PLATFORM), $(filter $(PLATFORM), apollo kronos)) +endif flash-prepare: $(START_BUILD) @@ -55,7 +156,7 @@ flash-prepare: cp -a $(SCRIPTS)/linuxrc $(BUILD_TMP)/install; \ fi -flash: $(D)/mtd-utils +flash: $(D)/host_mtd-utils $(START_BUILD) echo "/dev/console c 0600 0 0 5 1 0 0 0" > $(BUILD_TMP)/devtable; \ echo "/dev/null c 0666 0 0 1 3 0 0 0" >> $(BUILD_TMP)/devtable; \ diff --git a/make/kernel-arm.mk b/make/kernel-arm.mk new file mode 100644 index 0000000..860ce02 --- /dev/null +++ b/make/kernel-arm.mk @@ -0,0 +1,96 @@ +# +# KERNEL +# +ifeq ($(BOXTYPE), armbox) + +DEPMOD = $(HOST_DIR)/bin/depmod + +DTB = $(KERNEL_DIR)/arch/arm/boot/dts/$(KERNEL_DTB_VER) +ZIMAGE = $(KERNEL_DIR)/arch/arm/boot/zImage +ZIMAGE_DTB = $(KERNEL_DIR)/arch/arm/boot/zImage.dtb + +# +# Patches Kernel +# +HD51_PATCHES = \ + armbox/hd51_TBS-fixes-for-4.10-kernel.patch \ + armbox/hd51_0001-Support-TBS-USB-drivers-for-4.6-kernel.patch \ + armbox/hd51_0001-TBS-fixes-for-4.6-kernel.patch \ + armbox/hd51_0001-STV-Add-PLS-support.patch \ + armbox/hd51_0001-STV-Add-SNR-Signal-report-parameters.patch \ + armbox/hd51_blindscan2.patch \ + armbox/hd51_0001-stv090x-optimized-TS-sync-control.patch \ + armbox/hd51_reserve_dvb_adapter_0.patch \ + armbox/hd51_blacklist_mmc0.patch \ + armbox/hd51_export_pmpoweroffprepare.patch + +# +# KERNEL +# +KERNEL_PATCHES = $(KERNEL_PATCHES_ARM) + +$(D)/kernel.do_prepare: $(ARCHIVE)/$(KERNEL_SRC) $(PATCHES)/armbox/$(KERNEL_CONFIG) + $(START_BUILD) + rm -rf $(KERNEL_DIR) + $(UNTAR)/$(KERNEL_SRC) + set -e; cd $(KERNEL_DIR); \ + for i in $(KERNEL_PATCHES); do \ + echo -e "==> $(TERM_RED)Applying Patch:$(TERM_NORMAL) $$i"; \ + $(PATCH)/$$i; \ + done + install -m 644 $(PATCHES)/armbox/$(KERNEL_CONFIG) $(KERNEL_DIR)/.config +#ifeq ($(OPTIMIZATIONS), $(filter $(OPTIMIZATIONS), kerneldebug debug)) +# @echo "Using kernel debug" +# @grep -v "CONFIG_PRINTK" "$(KERNEL_DIR)/.config" > $(KERNEL_DIR)/.config.tmp +# cp $(KERNEL_DIR)/.config.tmp $(KERNEL_DIR)/.config +# @echo "CONFIG_PRINTK=y" >> $(KERNEL_DIR)/.config +# @echo "CONFIG_PRINTK_TIME=y" >> $(KERNEL_DIR)/.config +#endif + @touch $@ + +$(D)/kernel.do_compile: $(D)/kernel.do_prepare +ifeq ($(BOXSERIES), hd51) + set -e; cd $(KERNEL_DIR); \ + $(MAKE) -C $(KERNEL_DIR) ARCH=arm oldconfig + $(MAKE) -C $(KERNEL_DIR) ARCH=arm CROSS_COMPILE=$(TARGET)- $(KERNEL_DTB_VER) zImage modules + $(MAKE) -C $(KERNEL_DIR) ARCH=arm CROSS_COMPILE=$(TARGET)- DEPMOD=$(DEPMOD) INSTALL_MOD_PATH=$(TARGETPREFIX) modules_install + @touch $@ +endif + +#KERNEL = $(D)/kernel +$(D)/kernel-armbox: $(D)/kernel.do_compile +ifeq ($(BOXSERIES), hd51) +# install -m 644 $(KERNEL_DIR)/arch/arm/boot/zImage $(BOOT_DIR)/vmlinux.ub +# install -m 644 $(KERNEL_DIR)/vmlinux $(TARGETPREFIX)/boot/vmlinux-arm-$(KERNEL_VER) +# install -m 644 $(KERNEL_DIR)/System.map $(TARGETPREFIX)/boot/System.map-arm-$(KERNEL_VER) + cp $(ZIMAGE) $(TARGETPREFIX)/boot/ + cat $(ZIMAGE) $(DTB) > $(ZIMAGE_DTB) + cp -a $(ZIMAGE_DTB) $(TARGETPREFIX)/boot/zImage.dtb + rm $(TARGETPREFIX)/lib/modules/$(KERNEL_VER)/build || true + rm $(TARGETPREFIX)/lib/modules/$(KERNEL_VER)/source || true + $(TOUCH) +endif + +kernel-distclean: + rm -f $(D)/kernel-armbox + rm -f $(D)/kernel.do_compile + rm -f $(D)/kernel.do_prepare + +kernel-clean: + -$(MAKE) -C $(KERNEL_DIR) clean + rm -f $(D)/kernel-armbox + rm -f $(D)/kernel.do_compile + +# +# Helper +# +kernel.menuconfig kernel.xconfig: \ +kernel.%: $(D)/kernel-armbox + $(MAKE) -C $(KERNEL_DIR) ARCH=arm CROSS_COMPILE=$(TARGET)- $* + @echo "" + @echo "You have to edit $(PATCHES)/armbox/$(KERNEL_CONFIG) m a n u a l l y to make changes permanent !!!" + @echo "" + diff $(KERNEL_DIR)/.config.old $(KERNEL_DIR)/.config + @echo "" + +endif # ($(BOXTYPE), armbox) diff --git a/make/kernel.mk b/make/kernel.mk index 3b69851..35d21d1 100644 --- a/make/kernel.mk +++ b/make/kernel.mk @@ -6,8 +6,9 @@ # and can be picked from there. # # # ################################################################### +ifeq ($(BOXTYPE), coolstream) -K_DEP = $(D)/cskernel +K_DEP = $(D)/kernel-coolstream SOURCE_MODULE = $(TARGETPREFIX)/mymodules/lib/modules/$(KVERSION_FULL) TARGET_MODULE = $(TARGETPREFIX)/lib/modules/$(KVERSION_FULL) @@ -44,7 +45,7 @@ $(K_OBJ)/.config: $(PATCHES)/kernel-config/kernel-$(CST_KERNEL_VERSION)-$(PLATFO -$(D)/cskernel: $(K_SRCDIR) $(K_OBJ)/.config +$(D)/kernel-coolstream: $(K_SRCDIR) $(K_OBJ)/.config $(START_BUILD) ifeq ($(K_SRCDIR), $(SOURCE_DIR)/linux) # we need this to build out of tree - kbuild complains otherwise @@ -74,7 +75,7 @@ ifeq ($(PLATFORM), kronos) K_ADDR_PREFIX = 0000 K_IMAGENAME = vmlinux.ub.gz endif -cskernel-image: $(D)/cskernel | $(HOSTPREFIX)/bin/mkimage +kernel-image: $(D)/kernel-$(BOXTYPE) | $(HOSTPREFIX)/bin/mkimage $(START_BUILD) rm -f $(K_OBJ)/zImage.mkimage rm -f $(BUILD_TMP)/$(K_IMAGENAME) @@ -93,9 +94,16 @@ $(TARGET_MODULE)/kernel/fs/autofs4/autofs4.ko: $(K_DEP) install -m 644 -D $(SOURCE_MODULE)/kernel/fs/autofs4/autofs4.ko $@ make depmod +kernel-clean: + -rm -rf $(BUILD_TMP)/*linux* + -rm -f $(BUILD_TMP)/*kernel* + -rm -f $(D)/coolstream-kernel* + # helper target... depmod: PATH=$(PATH):/sbin:/usr/sbin depmod -b $(TARGETPREFIX) $(KVERSION_FULL) mv $(TARGET_MODULE)/modules.dep $(TARGET_MODULE)/.modules.dep rm $(TARGET_MODULE)/modules.* mv $(TARGET_MODULE)/.modules.dep $(TARGET_MODULE)/modules.dep + +endif # ($(BOXTYPE), coolstream) diff --git a/make/libraries.mk b/make/libraries.mk index 95a6e65..0056855 100755 --- a/make/libraries.mk +++ b/make/libraries.mk @@ -312,22 +312,6 @@ $(D)/libjpeg: $(ARCHIVE)/libjpeg-turbo-$(JPEG_TURBO_VER).tar.gz | $(TARGETPREFIX $(REMOVE)/libjpeg-turbo-$(JPEG_TURBO_VER) $(TOUCH) -$(D)/cortex-strings: $(ARCHIVE)/cortex-strings-git-$(CRTXSTR_GIT).tar.gz | $(TARGETPREFIX) - $(START_BUILD) - $(UNTAR)/cortex-strings-git-$(CRTXSTR_GIT).tar.gz - set -e; cd $(BUILD_TMP)/cortex-strings-git-$(CRTXSTR_GIT); \ - $(CONFIGURE) - --prefix= \ - --enable-shared \ - --disable-static \ - --without-neon; \ - $(MAKE); \ - make install DESTDIR=$(TARGETPREFIX) - $(REWRITE_LIBTOOL)/libcortex-strings.la - install -m 0644 -D $(SCRIPTS)/ld.so.preload $(TARGETPREFIX)/etc/ld.so.preload - $(REMOVE)/cortex-strings-git-$(CRTXSTR_GIT) - $(TOUCH) - #ifeq ($(PLATFORM), nevis) NEVIS_XML2_FLAGS = --without-iconv NEVIS_XML2_FLAGS += --with-minimum diff --git a/make/versions.mk b/make/versions.mk index ba85c61..dc836a5 100644 --- a/make/versions.mk +++ b/make/versions.mk @@ -1,3 +1,5 @@ +# versions + # The Advanced Linux Sound Architecture (ALSA) provides audio and MIDI functionality to the Linux operating system. ALSA_LIB_VER = 1.1.5 @@ -6,7 +8,7 @@ AUTOFS4_VER = 4.1.4 BUSYBOX_VER = 1.28.1 # cortex-strings; optimized string routines for ARM and AArch64 -CRTXSTR_GIT=48fd30c +CORTEX_STRINGS_VER = 48fd30c # crosstool-ng versions CT_NG_VER_HD1 = 1894239 @@ -116,7 +118,7 @@ LUA_FEEDPARSER_TAG=9b284bc LUASOCKET_VER = 2.0.2 LUASOCKET_GIT = 5a17f79 -# mtd-utils for the host... +# mtd-utils for the host and target MTD_UTILS_VER = 1.5.2 # ncurses; software for controlling writing to the console screen @@ -135,9 +137,6 @@ OPENSSL_SUBVER=n # openthreads; an object-oriented thread interface for C++ programmers LIBOPENTHREADS_VER=3.2 -# pkg-config; a helper tool used when compiling applications and libraries to insert the correct compiler options -PKGCONFIG_VER=0.29.2 - #libsigc++; a typesafe Callback Framework for C++ LIBSIGC_MAJ=2 LIBSIGC_MIN=4 @@ -178,3 +177,15 @@ XUPNPD_GIT = 6578ceb # zlib; compression an decompressin library ZLIB_VER=1.2.11 +# +# UTILS for the host... +# +# pkg-config; a helper tool used when compiling applications and libraries to insert the correct compiler options +HOST_PKGCONFIG_VER = 0.29.2 +MODULE_INIT_TOOLS_VER = 3.16 +HOST_MTD_UTILS_VER = $(MTD_UTILS_VER) +HOST_MKCRAMFS_VER = 1.1 +HOST_MKSQUASHFS_VER = 4.2 +HOST_E2FSPROGS_VER = 1.43.9 +LZMA_VER = 4.65 + -- 2.39.5