diff options
| -rw-r--r-- | arch/arm/configs/aicp_flo_defconfig | 2 | ||||
| -rw-r--r-- | arch/arm/configs/cyanogen_mako_defconfig | 4 | ||||
| -rw-r--r-- | arch/arm/mach-msm/asustek/asustek-keypad.c | 10 | ||||
| -rw-r--r-- | arch/arm/mach-msm/smd_rpcrouter.c | 2 | ||||
| -rw-r--r-- | drivers/input/keyboard/gpio_keys.c | 52 | ||||
| -rw-r--r-- | drivers/mmc/core/core.c | 62 | ||||
| -rw-r--r-- | drivers/mmc/core/core.h | 4 | ||||
| -rw-r--r-- | drivers/mmc/core/host.c | 8 | ||||
| -rw-r--r-- | drivers/mmc/core/mmc.c | 4 | ||||
| -rw-r--r-- | drivers/mmc/host/msm_sdcc.c | 17 | ||||
| -rw-r--r-- | drivers/video/msm/mipi_JDI.c | 39 | ||||
| -rw-r--r-- | drivers/video/msm/mipi_JDI.h | 8 | ||||
| -rw-r--r-- | include/linux/gpio_keys.h | 10 | ||||
| -rw-r--r-- | include/linux/mmc/card.h | 5 | ||||
| -rw-r--r-- | include/linux/mmc/host.h | 1 |
15 files changed, 33 insertions, 195 deletions
diff --git a/arch/arm/configs/aicp_flo_defconfig b/arch/arm/configs/aicp_flo_defconfig index 609594e6fc4..619cd297deb 100644 --- a/arch/arm/configs/aicp_flo_defconfig +++ b/arch/arm/configs/aicp_flo_defconfig @@ -52,7 +52,7 @@ CONFIG_HAVE_KERNEL_XZ=y CONFIG_HAVE_KERNEL_LZO=y # CONFIG_KERNEL_GZIP is not set CONFIG_KERNEL_LZMA=y -CONFIG_KERNEL_XZ=y +# CONFIG_KERNEL_XZ is not set # CONFIG_KERNEL_LZO is not set CONFIG_DEFAULT_HOSTNAME="(none)" CONFIG_SWAP=y diff --git a/arch/arm/configs/cyanogen_mako_defconfig b/arch/arm/configs/cyanogen_mako_defconfig index 10d9d49173b..316b320d925 100644 --- a/arch/arm/configs/cyanogen_mako_defconfig +++ b/arch/arm/configs/cyanogen_mako_defconfig @@ -56,8 +56,7 @@ CONFIG_KERNEL_GZIP=y # CONFIG_KERNEL_LZO is not set CONFIG_DEFAULT_HOSTNAME="(none)" CONFIG_SWAP=y -CONFIG_SYSVIPC=y -CONFIG_SYSVIPC_SYSCTL=y +# CONFIG_SYSVIPC is not set # CONFIG_POSIX_MQUEUE is not set # CONFIG_BSD_PROCESS_ACCT is not set # CONFIG_FHANDLE is not set @@ -110,7 +109,6 @@ CONFIG_RT_GROUP_SCHED=y # CONFIG_CHECKPOINT_RESTORE is not set CONFIG_NAMESPACES=y # CONFIG_UTS_NS is not set -# CONFIG_IPC_NS is not set # CONFIG_USER_NS is not set # CONFIG_PID_NS is not set # CONFIG_NET_NS is not set diff --git a/arch/arm/mach-msm/asustek/asustek-keypad.c b/arch/arm/mach-msm/asustek/asustek-keypad.c index 476992b76a2..18a84708a99 100644 --- a/arch/arm/mach-msm/asustek/asustek-keypad.c +++ b/arch/arm/mach-msm/asustek/asustek-keypad.c @@ -36,7 +36,7 @@ #define GPIO_PM8921_KEY2_VOLUME_UP PM8921_GPIO_PM_TO_SYS(4) #define GPIO_PM8921_KEY2_VOLUME_DOWN GPIO_PM8921_KEY_VOLUME_DOWN -#define GPIO_KEY(_id, _iswake, _isreset) \ +#define GPIO_KEY(_id, _iswake) \ { \ .code = _id, \ .gpio = GPIO_##_id, \ @@ -45,14 +45,12 @@ .type = EV_KEY, \ .wakeup = _iswake, \ .debounce_interval = 5, \ - .can_reset= _isreset, \ - .reset_interval= 7000, \ } static struct gpio_keys_button asustek_keys[] = { - [0] = GPIO_KEY(KEY_POWER, 1, 1), - [1] = GPIO_KEY(KEY_VOLUMEUP, 0, 0), - [2] = GPIO_KEY(KEY_VOLUMEDOWN, 0, 0), + [0] = GPIO_KEY(KEY_POWER, 1), + [1] = GPIO_KEY(KEY_VOLUMEUP, 0), + [2] = GPIO_KEY(KEY_VOLUMEDOWN, 0), }; static struct gpio_keys_platform_data asustek_keys_platform_data = { diff --git a/arch/arm/mach-msm/smd_rpcrouter.c b/arch/arm/mach-msm/smd_rpcrouter.c index eb209e03d4a..36b8ccfdc78 100644 --- a/arch/arm/mach-msm/smd_rpcrouter.c +++ b/arch/arm/mach-msm/smd_rpcrouter.c @@ -2127,7 +2127,7 @@ int msm_rpc_get_curr_pkt_size(struct msm_rpc_endpoint *ept) int msm_rpcrouter_close(void) { struct rpcrouter_xprt_info *xprt_info; - union rr_control_msg ctl; + union rr_control_msg ctl = { 0 }; ctl.cmd = RPCROUTER_CTRL_CMD_BYE; mutex_lock(&xprt_info_list_lock); diff --git a/drivers/input/keyboard/gpio_keys.c b/drivers/input/keyboard/gpio_keys.c index 170f0e703c6..e4f2e8d8e4d 100644 --- a/drivers/input/keyboard/gpio_keys.c +++ b/drivers/input/keyboard/gpio_keys.c @@ -44,9 +44,6 @@ struct gpio_button_data { spinlock_t lock; bool disabled; bool key_pressed; - struct work_struct reset_work; - struct timer_list reset_timer; - unsigned int timer_hwreset; /* in msecs */ }; struct gpio_keys_drvdata { @@ -339,28 +336,6 @@ static char *key_descriptions[] = { }; #endif -/* Routines for resetkey-transition notifications */ -static BLOCKING_NOTIFIER_HEAD(resetkey_chain_head); - -int register_resetkey_notifier(struct notifier_block *nb) -{ - return blocking_notifier_chain_register(&resetkey_chain_head, nb); -} -EXPORT_SYMBOL_GPL(register_resetkey_notifier); - -int unregister_resetkey_notifier(struct notifier_block *nb) -{ - return blocking_notifier_chain_unregister(&resetkey_chain_head, nb); -} -EXPORT_SYMBOL_GPL(unregister_resetkey_notifier); - -int resetkey_notifier_call_chain(unsigned long val) -{ - int ret = blocking_notifier_call_chain(&resetkey_chain_head, val, NULL); - - return notifier_to_errno(ret); -} - static void gpio_keys_gpio_report_event(struct gpio_button_data *bdata) { const struct gpio_keys_button *button = bdata->button; @@ -399,13 +374,6 @@ static void gpio_keys_gpio_work_func(struct work_struct *work) } #endif - if (button->can_reset) { - if (state) - mod_timer(&bdata->reset_timer, - jiffies + msecs_to_jiffies(bdata->timer_hwreset)); - else - del_timer_sync(&bdata->reset_timer); - } gpio_keys_gpio_report_event(bdata); } @@ -416,19 +384,6 @@ static void gpio_keys_gpio_timer(unsigned long _data) schedule_work(&bdata->work); } -static void reset_keys_work_func(struct work_struct *work) -{ - pr_info("gpio_keys: notify listeners pmic preparing to reset\n"); - resetkey_notifier_call_chain(RESETKEY_PREPARE_HWREST); -} - -static void powerkey_gpio_timer(unsigned long _data) -{ - struct gpio_button_data *bdata = (struct gpio_button_data *)_data; - - schedule_work(&bdata->reset_work); -} - static irqreturn_t gpio_keys_gpio_isr(int irq, void *dev_id) { struct gpio_button_data *bdata = dev_id; @@ -549,13 +504,6 @@ static int __devinit gpio_keys_setup_key(struct platform_device *pdev, isr = gpio_keys_gpio_isr; irqflags = IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING; - if (button->can_reset) { - INIT_WORK(&bdata->reset_work, reset_keys_work_func); - bdata->timer_hwreset = button->reset_interval; - setup_timer(&bdata->reset_timer, powerkey_gpio_timer, - (unsigned long)bdata); - } - } else { if (!button->irq) { dev_err(dev, "No IRQ specified\n"); diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c index b19a8897153..c0105e67ace 100644 --- a/drivers/mmc/core/core.c +++ b/drivers/mmc/core/core.c @@ -45,11 +45,6 @@ #include "sd_ops.h" #include "sdio_ops.h" -#include <linux/fs.h> -#include <linux/delay.h> - -extern void kernel_restart(char *cmd); - #define CREATE_TRACE_POINTS #include <trace/events/mmc.h> @@ -1761,40 +1756,6 @@ void mmc_set_driver_type(struct mmc_host *host, unsigned int drv_type) mmc_host_clk_release(host); } -void mmc_force_poweroff_notify(struct mmc_host *host) -{ - int err = 0; - unsigned int timeout; - - mmc_claim_host(host); - - if (mmc_card_is_sleep(host->card)) { - BUG_ON(!host->bus_ops->resume); - err = host->bus_ops->resume(host); - } - - if (err) { - pr_err("failed to resume for force poweroff notify\n"); - return; - } - - timeout = host->card->ext_csd.generic_cmd6_time; - - pr_info("sending poweroff notify\n"); - err = mmc_switch(host->card, EXT_CSD_CMD_SET_NORMAL, - EXT_CSD_POWER_OFF_NOTIFICATION, - EXT_CSD_POWER_OFF_SHORT, timeout); - if (err && err != -EBADMSG) { - pr_err("Device failed to respond within %d poweroff time\n", - timeout); - return; - } - - pr_info("poweroff notify sent\n"); - mmc_release_host(host); - return; -} - /* * Apply power to the MMC stack. This is a two-stage process. * First, we enable power to the card without the clock running. @@ -3554,29 +3515,6 @@ int mmc_pm_notify(struct notifier_block *notify_block, } #endif - -/* force send poweroff notify to Kingston eMMC - * while long press power key before hw reset - */ -int force_poweroff_notify(struct notifier_block *notify_block, - unsigned long mode, void *unused) -{ - struct mmc_host *host = container_of( - notify_block, struct mmc_host, force_poweroff_notifier); - - if (host->card == NULL) - return 0; - /* only for Kingston card */ - if (mmc_card_mmc(host->card) - && host->card->cid.manfid == 0x70) { - emergency_sync(); - emergency_remount(); - msleep(1000); - kernel_restart(NULL); - } - return 0; -} - #ifdef CONFIG_MMC_EMBEDDED_SDIO void mmc_set_embedded_sdio_data(struct mmc_host *host, struct sdio_cis *cis, diff --git a/drivers/mmc/core/core.h b/drivers/mmc/core/core.h index d7dd6e4513f..6fa51e0e18d 100644 --- a/drivers/mmc/core/core.h +++ b/drivers/mmc/core/core.h @@ -48,7 +48,6 @@ int mmc_set_signal_voltage(struct mmc_host *host, int signal_voltage, void mmc_set_timing(struct mmc_host *host, unsigned int timing); void mmc_set_driver_type(struct mmc_host *host, unsigned int drv_type); void mmc_power_off(struct mmc_host *host); -void mmc_force_poweroff_notify(struct mmc_host *host); static inline void mmc_delay(unsigned int ms) { @@ -72,9 +71,6 @@ int mmc_attach_mmc(struct mmc_host *host); int mmc_attach_sd(struct mmc_host *host); int mmc_attach_sdio(struct mmc_host *host); -int force_poweroff_notify(struct notifier_block *notify_block, - unsigned long mode, void *unused); - /* Module parameters */ extern bool use_spi_crc; diff --git a/drivers/mmc/core/host.c b/drivers/mmc/core/host.c index 9d5ff61c84d..98dee02c1e6 100644 --- a/drivers/mmc/core/host.c +++ b/drivers/mmc/core/host.c @@ -28,10 +28,6 @@ #include "core.h" #include "host.h" -#ifdef CONFIG_KEYBOARD_GPIO -#include <linux/gpio_keys.h> -#endif - #define cls_dev_to_mmc_host(d) container_of(d, struct mmc_host, class_dev) static void mmc_host_classdev_release(struct device *dev) @@ -343,10 +339,6 @@ struct mmc_host *mmc_alloc_host(int extra, struct device *dev) #ifdef CONFIG_PM host->pm_notify.notifier_call = mmc_pm_notify; #endif -#ifdef CONFIG_KEYBOARD_GPIO - host->force_poweroff_notifier.notifier_call = force_poweroff_notify; - register_resetkey_notifier(&host->force_poweroff_notifier); -#endif /* * By default, hosts do not support SGIO or large requests. diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c index c1de6817b02..d3d24c49357 100644 --- a/drivers/mmc/core/mmc.c +++ b/drivers/mmc/core/mmc.c @@ -1532,8 +1532,6 @@ static int mmc_suspend(struct mmc_host *host) err = mmc_card_sleep(host); else if (!mmc_host_is_spi(host)) mmc_deselect_cards(host); - - mmc_card_set_sleep(host->card); host->card->state &= ~(MMC_STATE_HIGHSPEED | MMC_STATE_HIGHSPEED_200); out: @@ -1554,7 +1552,6 @@ static int mmc_resume(struct mmc_host *host) BUG_ON(!host); BUG_ON(!host->card); - mmc_card_clr_sleep(host->card); mmc_claim_host(host); err = mmc_init_card(host, host->ocr, host->card); mmc_release_host(host); @@ -1577,7 +1574,6 @@ static int mmc_power_restore(struct mmc_host *host) mmc_disable_clk_scaling(host); host->card->state &= ~(MMC_STATE_HIGHSPEED | MMC_STATE_HIGHSPEED_200); - mmc_card_clr_sleep(host->card); mmc_claim_host(host); ret = mmc_init_card(host, host->ocr, host->card); mmc_release_host(host); diff --git a/drivers/mmc/host/msm_sdcc.c b/drivers/mmc/host/msm_sdcc.c index 693305245e2..e9afafb9f07 100644 --- a/drivers/mmc/host/msm_sdcc.c +++ b/drivers/mmc/host/msm_sdcc.c @@ -60,7 +60,6 @@ #include "msm_sdcc.h" #include "msm_sdcc_dml.h" -#include "../core/core.h" #define DRIVER_NAME "msm-sdcc" @@ -6298,21 +6297,6 @@ static int msmsdcc_remove(struct platform_device *pdev) return 0; } -static void msmsdcc_shutdown(struct platform_device *pdev) -{ - struct mmc_host *mmc = mmc_get_drvdata(pdev); - - if (!mmc || !mmc->card) - return; - - /* only for Kingston eMMC */ - if (mmc_card_mmc(mmc->card) - && mmc->card->cid.manfid == 0x70) - mmc_force_poweroff_notify(mmc); - - return; -} - #ifdef CONFIG_MSM_SDIO_AL int msmsdcc_sdio_al_lpm(struct mmc_host *mmc, bool enable) { @@ -6673,7 +6657,6 @@ MODULE_DEVICE_TABLE(of, msmsdcc_dt_match); static struct platform_driver msmsdcc_driver = { .probe = msmsdcc_probe, .remove = msmsdcc_remove, - .shutdown = msmsdcc_shutdown, .driver = { .name = "msm_sdcc", .pm = &msmsdcc_dev_pm_ops, diff --git a/drivers/video/msm/mipi_JDI.c b/drivers/video/msm/mipi_JDI.c index e12c0dea7a5..3cdf2185c17 100644 --- a/drivers/video/msm/mipi_JDI.c +++ b/drivers/video/msm/mipi_JDI.c @@ -85,8 +85,8 @@ static char backlight_control4[] = {0xCE, 0x7D, 0x40, 0x48, 0x56, 0x67, 0x78, static char LTPS_timing_setting[2] = {0xC6, 0x78}; static char sequencer_timing_control[2] = {0xD6, 0x01}; -static unsigned int cabc_level = 0x00; -static unsigned int sre_level = 0x00; +static unsigned int cabc_level = 0; +static unsigned int sre_level = 0; static bool aco_enabled = false; static struct dsi_cmd_desc JDI_display_on_cmds[] = { @@ -273,19 +273,33 @@ static void JDI_command_cabc(void) { write_cabc[1] = CABC_OFF; - if (cabc_level == 1) + switch (cabc_level) { + case 1: write_cabc[1] |= CABC_UI; - else if (cabc_level == 2) + break; + case 2: write_cabc[1] |= CABC_IMAGE; - else if (cabc_level == 3) + break; + case 3: write_cabc[1] |= CABC_VIDEO; + break; + default: + break; + } - if (sre_level == 1) + switch (sre_level) { + case 1: write_cabc[1] |= SRE_WEAK; - else if (sre_level == 2) + break; + case 2: write_cabc[1] |= SRE_MEDIUM; - else if (sre_level == 3) + break; + case 3: write_cabc[1] |= SRE_STRONG; + break; + default: + break; + } if (aco_enabled) write_cabc[1] |= CABC_ACO; @@ -315,15 +329,6 @@ static int mipi_JDI_get_cabc(struct platform_device *pdev) { static void mipi_JDI_set_sre(struct platform_device *pdev, int level) { - unsigned int sre_value = 0; - - if (level == 1) - sre_value = SRE_WEAK; - else if (level == 2) - sre_value = SRE_MEDIUM; - else if (level == 3) - sre_value = SRE_STRONG; - sre_level = level; JDI_command_cabc(); } diff --git a/drivers/video/msm/mipi_JDI.h b/drivers/video/msm/mipi_JDI.h index 0b6cf472ba5..ac271f61361 100644 --- a/drivers/video/msm/mipi_JDI.h +++ b/drivers/video/msm/mipi_JDI.h @@ -18,10 +18,10 @@ int mipi_JDI_device_register(struct msm_panel_info *pinfo, u32 channel, u32 panel); enum { - CABC_OFF = 0x0, - CABC_UI = 0x1, - CABC_IMAGE = 0x2, - CABC_VIDEO = 0x3, + CABC_OFF = 0x00, + CABC_UI = 0x01, + CABC_IMAGE = 0x02, + CABC_VIDEO = 0x03, SRE_WEAK = 0x50, SRE_MEDIUM = 0x60, SRE_STRONG = 0X70, diff --git a/include/linux/gpio_keys.h b/include/linux/gpio_keys.h index d02ba7b922d..a7e977ff4ab 100644 --- a/include/linux/gpio_keys.h +++ b/include/linux/gpio_keys.h @@ -15,8 +15,6 @@ struct gpio_keys_button { bool can_disable; int value; /* axis value for EV_ABS */ unsigned int irq; /* Irq number in case of interrupt keys */ - bool can_reset; /* key is able to reset system */ - int reset_interval; /* reset key interval in msec */ }; struct gpio_keys_platform_data { @@ -30,12 +28,4 @@ struct gpio_keys_platform_data { const char *name; /* input device name */ }; - -#define RESETKEY_PRESS 0x0001 /* power key is pressed */ -#define RESETKEY_RELEASE 0x0002 /* power key is released */ -#define RESETKEY_PREPARE_HWREST 0x0003 /* Going to reset whole system by pmic*/ - -extern int register_resetkey_notifier(struct notifier_block *nb); -extern int unregister_resetkey_notifier(struct notifier_block *nb); - #endif diff --git a/include/linux/mmc/card.h b/include/linux/mmc/card.h index 56b09e5024b..a63105996ff 100644 --- a/include/linux/mmc/card.h +++ b/include/linux/mmc/card.h @@ -311,7 +311,6 @@ struct mmc_card { #define MMC_STATE_HIGHSPEED_200 (1<<8) /* card is in HS200 mode */ #define MMC_STATE_DOING_BKOPS (1<<10) /* card is doing BKOPS */ #define MMC_STATE_NEED_BKOPS (1<<11) /* card needs to do BKOPS */ -#define MMC_STATE_SLEEP (1<<12) /* card is in sleep/deselect state */ unsigned int quirks; /* card quirks */ #define MMC_QUIRK_LENIENT_FN0 (1<<0) /* allow SDIO FN0 writes outside of the VS CCCR range */ #define MMC_QUIRK_BLKSZ_FOR_BYTE_MODE (1<<1) /* use func->cur_blksize */ @@ -484,7 +483,6 @@ static inline void __maybe_unused remove_quirk(struct mmc_card *card, int data) #define mmc_card_removed(c) ((c) && ((c)->state & MMC_CARD_REMOVED)) #define mmc_card_doing_bkops(c) ((c)->state & MMC_STATE_DOING_BKOPS) #define mmc_card_need_bkops(c) ((c)->state & MMC_STATE_NEED_BKOPS) -#define mmc_card_is_sleep(c) ((c)->state & MMC_STATE_SLEEP) #define mmc_card_set_present(c) ((c)->state |= MMC_STATE_PRESENT) #define mmc_card_set_readonly(c) ((c)->state |= MMC_STATE_READONLY) @@ -500,9 +498,6 @@ static inline void __maybe_unused remove_quirk(struct mmc_card *card, int data) #define mmc_card_clr_doing_bkops(c) ((c)->state &= ~MMC_STATE_DOING_BKOPS) #define mmc_card_set_need_bkops(c) ((c)->state |= MMC_STATE_NEED_BKOPS) #define mmc_card_clr_need_bkops(c) ((c)->state &= ~MMC_STATE_NEED_BKOPS) -#define mmc_card_set_sleep(c) ((c)->state |= MMC_STATE_SLEEP) -#define mmc_card_clr_sleep(c) ((c)->state &= ~MMC_STATE_SLEEP) - /* * Quirk add/remove for MMC products. */ diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h index 224a631951c..b5195ed00ad 100644 --- a/include/linux/mmc/host.h +++ b/include/linux/mmc/host.h @@ -209,7 +209,6 @@ struct mmc_host { u32 ocr_avail_sd; /* SD-specific OCR */ u32 ocr_avail_mmc; /* MMC-specific OCR */ struct notifier_block pm_notify; - struct notifier_block force_poweroff_notifier; #define MMC_VDD_165_195 0x00000080 /* VDD voltage 1.65 - 1.95 */ #define MMC_VDD_20_21 0x00000100 /* VDD voltage 2.0 ~ 2.1 */ |
