Skip to content

Commit

Permalink
Merge fixes from Motorola Photon 4G 4.5.1A-1_SUN-154 release
Browse files Browse the repository at this point in the history
  • Loading branch information
turl committed Sep 5, 2011
1 parent a87e409 commit f0e3ac3
Show file tree
Hide file tree
Showing 37 changed files with 915 additions and 292 deletions.
52 changes: 33 additions & 19 deletions arch/arm/configs/tegra_sunfire_android_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -421,7 +421,8 @@ CONFIG_NET=y
CONFIG_PACKET=y
# CONFIG_PACKET_MMAP is not set
CONFIG_UNIX=y
# CONFIG_NET_KEY is not set
CONFIG_NET_KEY=y
CONFIG_NET_KEY_MIGRATE=y
CONFIG_INET=y
# CONFIG_IP_MULTICAST is not set
CONFIG_IP_ADVANCED_ROUTER=y
Expand All @@ -436,21 +437,33 @@ CONFIG_IP_MULTIPLE_TABLES=y
# CONFIG_NET_IPGRE is not set
# CONFIG_ARPD is not set
# CONFIG_SYN_COOKIES is not set
# CONFIG_INET_AH is not set
# CONFIG_INET_ESP is not set
CONFIG_INET_AH=y
CONFIG_INET_ESP=y
# CONFIG_INET_IPCOMP is not set
# CONFIG_INET_XFRM_TUNNEL is not set
# CONFIG_INET_TUNNEL is not set
# 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_TUNNEL=y
CONFIG_INET_XFRM_MODE_TRANSPORT=y
CONFIG_INET_XFRM_MODE_TUNNEL=y
CONFIG_INET_XFRM_MODE_BEET=y
# CONFIG_INET_LRO is not set
# CONFIG_INET_DIAG is not set
CONFIG_INET_DIAG=y
# 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=y
CONFIG_IPV6_PRIVACY=y
CONFIG_IPV6_ROUTER_PREF=y
CONFIG_IPV6_OPTIMISTIC_DAD=y
CONFIG_INET6_AH=y
CONFIG_INET6_ESP=y
CONFIG_INET6_IPCOMP=y
CONFIG_IPV6_MIP6=y
CONFIG_INET6_XFRM_TUNNEL=y
CONFIG_INET6_TUNNEL=y
CONFIG_INET6_XFRM_MODE_TRANSPORT=y
CONFIG_INET6_XFRM_MODE_TUNNEL=y
CONFIG_INET6_XFRM_MODE_BEET=y
CONFIG_ANDROID_PARANOID_NETWORK=y
# CONFIG_NETWORK_SECMARK is not set
CONFIG_NETFILTER=y
Expand Down Expand Up @@ -487,7 +500,7 @@ CONFIG_NETFILTER_XTABLES=y
# 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_TCPMSS is not set
CONFIG_NETFILTER_XT_TARGET_TCPMSS=y
# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set
# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set
Expand Down Expand Up @@ -516,7 +529,7 @@ CONFIG_NETFILTER_XT_MATCH_OWNER=y
CONFIG_NETFILTER_XT_MATCH_STATE=y
# 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_TCPMSS=y
# CONFIG_NETFILTER_XT_MATCH_TIME is not set
# CONFIG_NETFILTER_XT_MATCH_U32 is not set
# CONFIG_IP_VS is not set
Expand Down Expand Up @@ -552,7 +565,7 @@ CONFIG_NF_NAT_AMANDA=y
CONFIG_NF_NAT_PPTP=y
CONFIG_NF_NAT_H323=y
CONFIG_NF_NAT_SIP=y
# CONFIG_IP_NF_MANGLE is not set
CONFIG_IP_NF_MANGLE=y
# CONFIG_IP_NF_TARGET_TTL is not set
# CONFIG_IP_NF_RAW is not set
# CONFIG_IP_NF_ARPTABLES is not set
Expand Down Expand Up @@ -990,7 +1003,7 @@ CONFIG_INPUT_UINPUT=y
# CONFIG_INPUT_TEGRA_ODM_SCROLL is not set
CONFIG_INPUT_ALS_IR_ISL29030=y
# CONFIG_INPUT_AES1750 is not set

CONFIG_INPUT_HALLEFFECT_BU52014HV=y
#
# Hardware I/O ports
#
Expand Down Expand Up @@ -1173,6 +1186,7 @@ CONFIG_POWER_SUPPLY=y
# CONFIG_TEGRA_BATTERY_ODM is not set
CONFIG_CHARGER_CPCAP=y
CONFIG_BATTERY_CPCAP=y
CONFIG_MOT_CHARGING_DIS=y
CONFIG_HWMON=y
CONFIG_SENSORS_TEGRA_TMON=y
# CONFIG_THERMAL is not set
Expand Down Expand Up @@ -1322,7 +1336,7 @@ CONFIG_USB_HID=y
#
# CONFIG_HID_A4TECH is not set
CONFIG_HID_APPLE=y
# CONFIG_HID_BELKIN is not set
CONFIG_HID_BELKIN=y
# CONFIG_HID_CHERRY is not set
# CONFIG_HID_CHICONY is not set
# CONFIG_HID_CYPRESS is not set
Expand All @@ -1332,8 +1346,8 @@ CONFIG_HID_APPLE=y
# CONFIG_HID_GYRATION is not set
# CONFIG_HID_TWINHAN is not set
# CONFIG_HID_KENSINGTON is not set
# CONFIG_HID_LOGITECH is not set
# CONFIG_HID_MICROSOFT is not set
CONFIG_HID_LOGITECH=y
CONFIG_HID_MICROSOFT=y
# CONFIG_HID_MONTEREY is not set
CONFIG_HID_MOTOROLA=y
# CONFIG_HID_NTRIG is not set
Expand Down Expand Up @@ -1376,7 +1390,7 @@ CONFIG_USB_MON=y
# CONFIG_USB_C67X00_HCD is not set
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_ROOT_HUB_TT=y
# CONFIG_USB_EHCI_TT_NEWSCHED is not set
CONFIG_USB_EHCI_TT_NEWSCHED=y
# CONFIG_USB_OXU210HP_HCD is not set
# CONFIG_USB_ISP116X_HCD is not set
# CONFIG_USB_ISP1760_HCD is not set
Expand Down Expand Up @@ -1559,7 +1573,7 @@ CONFIG_MMC=y
CONFIG_EMBEDDED_MMC_START_OFFSET=y
# CONFIG_MMC_DEBUG is not set
CONFIG_MMC_UNSAFE_RESUME=y
# CONFIG_MMC_EMBEDDED_SDIO is not set
CONFIG_MMC_EMBEDDED_SDIO=y
# CONFIG_MMC_PARANOID_SD_INIT is not set

#
Expand Down Expand Up @@ -1695,7 +1709,7 @@ CONFIG_ANDROID_RAM_CONSOLE_ENABLE_VERBOSE=y
# CONFIG_ANDROID_RAM_CONSOLE_EARLY_INIT is not set
CONFIG_ANDROID_TIMED_OUTPUT=y
CONFIG_ANDROID_TIMED_GPIO=y
# CONFIG_ANDROID_LOW_MEMORY_KILLER is not set
CONFIG_ANDROID_LOW_MEMORY_KILLER=y

CONFIG_MISC_NVODMCAM=y

Expand Down Expand Up @@ -1981,7 +1995,7 @@ CONFIG_CRYPTO_PCOMP=y
CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_MANAGER2=y
# CONFIG_CRYPTO_GF128MUL is not set
# CONFIG_CRYPTO_NULL is not set
CONFIG_CRYPTO_NULL=y
CONFIG_CRYPTO_WORKQUEUE=y
# CONFIG_CRYPTO_CRYPTD is not set
CONFIG_CRYPTO_AUTHENC=y
Expand Down
19 changes: 16 additions & 3 deletions arch/arm/kernel/smp.c
Original file line number Diff line number Diff line change
Expand Up @@ -504,9 +504,22 @@ void smp_send_reschedule(int cpu)

void smp_send_stop(void)
{
cpumask_t mask = cpu_online_map;
cpu_clear(smp_processor_id(), mask);
send_ipi_message(&mask, IPI_CPU_STOP);
unsigned long timeout;

if (num_online_cpus() > 1) {
cpumask_t mask = cpu_online_map;
cpu_clear(smp_processor_id(), mask);

send_ipi_message(&mask, IPI_CPU_STOP);
}

/* Wait up to one second for other CPUs to stop */
timeout = USEC_PER_SEC;
while (num_online_cpus() > 1 && timeout--)
udelay(1);

if (num_online_cpus() > 1)
pr_warning("SMP: failed to stop secondary CPUs ");
}

/*
Expand Down
18 changes: 16 additions & 2 deletions arch/arm/kernel/traps.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@

#include "ptrace.h"
#include "signal.h"
#include "../../../kernel/power/power.h"

static const char *handler[]= { "prefetch abort", "data abort", "address exception", "interrupt" };

Expand Down Expand Up @@ -253,16 +254,29 @@ DEFINE_SPINLOCK(die_lock);
NORET_TYPE void die(const char *str, struct pt_regs *regs, int err)
{
struct thread_info *thread = current_thread_info();
unsigned long flags,lirq=0;

oops_enter();

spin_lock_irq(&die_lock);
/* prevent spin_lock when suspending, it may hang */
if (get_suspend_state() != PM_SUSPEND_PREPARE)
spin_lock_irq(&die_lock);
else {
lirq=1;
local_irq_save(flags);
}

console_verbose();
bust_spinlocks(1);
__die(str, err, thread, regs);
bust_spinlocks(0);
add_taint(TAINT_DIE);
spin_unlock_irq(&die_lock);

if (lirq)
local_irq_restore(flags);
else
spin_unlock_irq(&die_lock);

oops_exit();

if (in_interrupt())
Expand Down
5 changes: 3 additions & 2 deletions arch/arm/mach-tegra/board-mot-modem.c
Original file line number Diff line number Diff line change
Expand Up @@ -385,11 +385,12 @@ int __init mot_modem_init(void)
} else
strcat(bp_ctrl_bus, " (NO mdm_ctrl)");

if (machine_is_olympus() || machine_is_tegra_daytona()) {
if (machine_is_olympus() || machine_is_tegra_daytona() ||
machine_is_sunfire()) {
strcpy(bp_data_bus, "and SPI");
mot_setup_mdm6600_spi_ipc();
mot_setup_mdm6600_usb_ipc(0);
} else if (machine_is_etna() || machine_is_sunfire()) {
} else if (machine_is_etna()) {
strcpy(bp_data_bus, "and USB");
mot_setup_mdm6600_usb_ipc(MDM6600_HOST_WAKE_GPIO);
}
Expand Down
25 changes: 17 additions & 8 deletions arch/arm/mach-tegra/board-mot-sensors.c
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
#define TEGRA_PROX_INT_GPIO TEGRA_GPIO_PE1
#define TEGRA_HF_NORTH_GPIO TEGRA_GPIO_PS2
#define TEGRA_HF_SOUTH_GPIO TEGRA_GPIO_PS0
#define TEGRA_HF_KICKSTAND_GPIO TEGRA_GPIO_PW3
#define TEGRA_VIBRATOR_GPIO TEGRA_GPIO_PD0
#define TEGRA_VIBRATOR_GPIO_ETNA_S1 TEGRA_GPIO_PU4
#define TEGRA_KXTF9_INT_GPIO TEGRA_GPIO_PV3
Expand Down Expand Up @@ -213,6 +214,7 @@ static struct platform_device tegra_tmon = {
static struct bu52014hfv_platform_data bu52014hfv_platform_data = {
.docked_north_gpio = TEGRA_HF_NORTH_GPIO,
.docked_south_gpio = TEGRA_HF_SOUTH_GPIO,
.kickstand_gpio = TEGRA_HF_KICKSTAND_GPIO,
.north_is_desk = 1,
.set_switch_func = cpcap_set_dock_switch,
};
Expand Down Expand Up @@ -591,7 +593,7 @@ struct isl29030_platform_data isl29030_als_ir_data_Sunfire = {
.crosstalk_vs_covered_threshold = 0x96,
.default_prox_noise_floor = 0x96,
.num_samples_for_noise_floor = 0x05,
.lens_percent_t = 20,
.lens_percent_t = 7,
.irq = 0,
.getIrqStatus = isl29030_getIrqStatus,
.gpio_intr = PROX_INT_GPIO,
Expand Down Expand Up @@ -663,13 +665,19 @@ static struct spi_board_info aes1750_spi_device __initdata = {
/* Hall effect */
static void tegra_hall_effect_init(void)
{
gpio_request(TEGRA_HF_NORTH_GPIO, "tegra dock north");
gpio_direction_input(TEGRA_HF_NORTH_GPIO);
// omap_cfg_reg(AG25_34XX_GPIO10);
if ((machine_is_sunfire())) {
pr_info("HALL: Sunfire kickstand gpio init.\n");
gpio_request(TEGRA_HF_KICKSTAND_GPIO, "tegra kickstand");
gpio_direction_input(TEGRA_HF_KICKSTAND_GPIO);
} else {
gpio_request(TEGRA_HF_NORTH_GPIO, "tegra dock north");
gpio_direction_input(TEGRA_HF_NORTH_GPIO);
/* omap_cfg_reg(AG25_34XX_GPIO10); */

gpio_request(TEGRA_HF_SOUTH_GPIO, "tegra dock south");
gpio_direction_input(TEGRA_HF_SOUTH_GPIO);
// omap_cfg_reg(B26_34XX_GPIO111);
gpio_request(TEGRA_HF_SOUTH_GPIO, "tegra dock south");
gpio_direction_input(TEGRA_HF_SOUTH_GPIO);
/* omap_cfg_reg(B26_34XX_GPIO111); */
}
}

static struct regulator *tegra_l3g4200d_regulator=NULL;
Expand Down Expand Up @@ -745,7 +753,8 @@ void __init mot_sensors_init(void)
{
kxtf9_init();
tegra_akm8975_init();
if (machine_is_tegra_daytona())
if (machine_is_tegra_daytona() ||
machine_is_sunfire())
tegra_hall_effect_init();

tegra_vibrator_init();
Expand Down
Loading

0 comments on commit f0e3ac3

Please sign in to comment.