[PATCH] mmc: core: Fix setting power notify state variable for non eMMC

2011-11-04 Thread Girish K S
This patch skips the setting of the power notify state variable
for non eMMC 4.5 devices. Also fixes the problem of omap_hsmmc
noisy/broken for suspend resume reported by kevin Hilman.

cc: Chris Ball c...@laptop.org
Signed-off-by: Girish K S girish.shivananja...@linaro.org
---
 drivers/mmc/core/mmc.c |   10 +++---
 1 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c
index 3627044..4db73a9 100644
--- a/drivers/mmc/core/mmc.c
+++ b/drivers/mmc/core/mmc.c
@@ -882,10 +882,14 @@ static int mmc_init_card(struct mmc_host *host, u32 ocr,
 card-ext_csd.generic_cmd6_time);
if (err  err != -EBADMSG)
goto free_card;
-   }
 
-   if (!err)
-   card-poweroff_notify_state = MMC_POWERED_ON;
+   /*
+* The err can be -EBADMSG or 0,
+* so check for success and update the flag
+*/
+   if (!err)
+   card-poweroff_notify_state = MMC_POWERED_ON;
+   }
 
/*
 * Activate high speed (if supported)
-- 
1.7.4.1

--
To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 6/6] ARM: S3C64XX: Modified according to SPI consolidation work.

2011-11-04 Thread Mark Brown
On Fri, Nov 04, 2011 at 08:43:54AM -0400, Padmavathi Venna wrote:

 +#ifdef CONFIG_S3C64XX_DEV_SPI0
 +static struct s3c64xx_spi_info crag6410_spi0_pdata __initdata = {
 + .cfg_gpio   = s3c64xx_spi0_cfg_gpio,
 + .fifo_lvl_mask  = 0x7f,
 + .rx_lvl_offset  = 13,
 + .tx_st_done = 21,
 +};
 +#endif

It seems like a step backwards to have all this stuff in the individual
machines - most of this (everything except cfg_gpio pretty much) is a
property of the SoC silicon so should be somewhere central for the SoC.
--
To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] mmc: core: Fix setting power notify state variable for non eMMC

2011-11-04 Thread Girish K S
On 4 November 2011 06:52, Girish K S girish.shivananja...@linaro.org wrote:
 This patch skips the setting of the power notify state variable
 for non eMMC 4.5 devices. Also fixes the problem of omap_hsmmc
 noisy/broken for suspend resume reported by kevin Hilman.

 cc: Chris Ball c...@laptop.org
 Signed-off-by: Girish K S girish.shivananja...@linaro.org
 ---
  drivers/mmc/core/mmc.c |   10 +++---
  1 files changed, 7 insertions(+), 3 deletions(-)

 diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c
 index 3627044..4db73a9 100644
 --- a/drivers/mmc/core/mmc.c
 +++ b/drivers/mmc/core/mmc.c
 @@ -882,10 +882,14 @@ static int mmc_init_card(struct mmc_host *host, u32 ocr,
                                 card-ext_csd.generic_cmd6_time);
                if (err  err != -EBADMSG)
                        goto free_card;
 -       }

 -       if (!err)
 -               card-poweroff_notify_state = MMC_POWERED_ON;
 +               /*
 +                * The err can be -EBADMSG or 0,
 +                * so check for success and update the flag
 +                */
 +               if (!err)
 +                       card-poweroff_notify_state = MMC_POWERED_ON;
 +       }

        /*
         * Activate high speed (if supported)
 --
 1.7.4.1

Hi Chris,
  this patch is based on for-linus branch.
 Regards
Girish K S
--
To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC][PATCH] Consolidate Samsung MAINTAINERS

2011-11-04 Thread Heiko Stübner
Am Sonntag 23 Oktober 2011, 00:12:14 schrieb Heiko Stübner:
 These days most Samsung stuff gets in the kernel through Kukjin Kim.
 This patch changes MAINTAINERS to reflect this.
 
 By adding Kukjin Kim to the maintainers for S3C2410, S3C244x and
 S3C64xx alongside Ben Dooks the extra entries become identical to the
 base ARM/SAMSUNG entry and can move into it.
 
 Also the S3C2416 gets a maintainer through the s3c24* wildcard - as it
 did not have one until now.
 
 Signed-off-by: Heiko Stuebner he...@sntech.de
 ---
ping?

Thanks
Heiko
--
To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 0/3] ARM: S5P64X0: Add SDMMC support

2011-11-04 Thread Rajeshwari Shinde
This patchset adds support for sdhci controller on S5P6440 and S5P6450.

Since this patchset is based on mmc: sdhci-s3c: Rework platform data 
and add device tree support clk_type member has been removed from
platform data.

This patchset depends on the patchs:
ARM: S5P64X0: Modified files for SPI consolidation work.
mmc: sdhci-s3c: Rework platform data and add device tree support.

Rajeshwari Shinde (3):
  ARM: S5P64X0: Add HSMMC setup for host Controller
  ARM: S5P64X0: Add lookup of sdhci-s3c clocks using generic names
  ARM: S5P64X0: Enable SDHCI support

 arch/arm/mach-s5p64x0/Kconfig  |   24 +++
 arch/arm/mach-s5p64x0/Makefile |1 +
 arch/arm/mach-s5p64x0/clock-s5p6440.c  |   72 +++
 arch/arm/mach-s5p64x0/clock-s5p6450.c  |   72 +++
 arch/arm/mach-s5p64x0/cpu.c|9 +++
 arch/arm/mach-s5p64x0/mach-smdk6440.c  |   25 +++
 arch/arm/mach-s5p64x0/mach-smdk6450.c  |   26 +++-
 arch/arm/mach-s5p64x0/setup-sdhci-gpio.c   |  104 
 arch/arm/plat-samsung/include/plat/sdhci.h |   42 +++
 9 files changed, 314 insertions(+), 61 deletions(-)
 create mode 100644 arch/arm/mach-s5p64x0/setup-sdhci-gpio.c

-- 
1.7.4.4

--
To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 1/3] ARM: S5P64X0: Add HSMMC setup for host Controller

2011-11-04 Thread Rajeshwari Shinde
Adds support for HSMMC for S5P64X0 platform, performs
setup for host controller and related GPIO.

Signed-off-by: Rajeshwari Shinde rajeshwar...@samsung.com
---
 arch/arm/mach-s5p64x0/Kconfig  |   24 +++
 arch/arm/mach-s5p64x0/Makefile |1 +
 arch/arm/mach-s5p64x0/cpu.c|9 +++
 arch/arm/mach-s5p64x0/setup-sdhci-gpio.c   |  104 
 arch/arm/plat-samsung/include/plat/sdhci.h |   42 +++
 5 files changed, 180 insertions(+), 0 deletions(-)
 create mode 100644 arch/arm/mach-s5p64x0/setup-sdhci-gpio.c

diff --git a/arch/arm/mach-s5p64x0/Kconfig b/arch/arm/mach-s5p64x0/Kconfig
index 4de625a..4d6154e 100644
--- a/arch/arm/mach-s5p64x0/Kconfig
+++ b/arch/arm/mach-s5p64x0/Kconfig
@@ -41,6 +41,11 @@ config S5P64X0_SETUP_SPI
help
  Common setup code for SPI GPIO configurations
 
+config S5P64X0_SETUP_SDHCI_GPIO
+   bool
+   help
+ Common setup code for SDHCI gpio.
+
 # machine support
 
 config MACH_SMDK6440
@@ -50,12 +55,16 @@ config MACH_SMDK6440
select S3C_DEV_I2C1
select S3C_DEV_RTC
select S3C_DEV_WDT
+   select S3C_DEV_HSMMC
+   select S3C_DEV_HSMMC1
+   select S3C_DEV_HSMMC2
select SAMSUNG_DEV_ADC
select SAMSUNG_DEV_BACKLIGHT
select SAMSUNG_DEV_PWM
select SAMSUNG_DEV_TS
select S5P64X0_SETUP_FB_24BPP
select S5P64X0_SETUP_I2C1
+   select S5P64X0_SETUP_SDHCI_GPIO
help
  Machine support for the Samsung SMDK6440
 
@@ -66,13 +75,28 @@ config MACH_SMDK6450
select S3C_DEV_I2C1
select S3C_DEV_RTC
select S3C_DEV_WDT
+   select S3C_DEV_HSMMC
+   select S3C_DEV_HSMMC1
+   select S3C_DEV_HSMMC2
select SAMSUNG_DEV_ADC
select SAMSUNG_DEV_BACKLIGHT
select SAMSUNG_DEV_PWM
select SAMSUNG_DEV_TS
select S5P64X0_SETUP_FB_24BPP
select S5P64X0_SETUP_I2C1
+   select S5P64X0_SETUP_SDHCI_GPIO
help
  Machine support for the Samsung SMDK6450
 
+menu Use 8-bit SDHCI bus width
+
+config S5P64X0_SD_CH1_8BIT
+   bool SDHCI Channel 1 (Slot 1)
+   depends on MACH_SMDK6450 || MACH_SMDK6440
+   help
+ Support SDHCI Channel 1 8-bit bus.
+ If selected, Channel 2 is disabled.
+
+endmenu
+
 endif
diff --git a/arch/arm/mach-s5p64x0/Makefile b/arch/arm/mach-s5p64x0/Makefile
index 5f473de..084f436 100644
--- a/arch/arm/mach-s5p64x0/Makefile
+++ b/arch/arm/mach-s5p64x0/Makefile
@@ -31,3 +31,4 @@ obj-$(CONFIG_S3C64XX_DEV_SPI) += dev-spi.o
 obj-$(CONFIG_S5P64X0_SETUP_I2C1)   += setup-i2c1.o
 obj-$(CONFIG_S5P64X0_SETUP_FB_24BPP)   += setup-fb-24bpp.o
 obj-$(CONFIG_S5P64X0_SETUP_SPI)+= setup-spi.o
+obj-$(CONFIG_S5P64X0_SETUP_SDHCI_GPIO) += setup-sdhci-gpio.o
diff --git a/arch/arm/mach-s5p64x0/cpu.c b/arch/arm/mach-s5p64x0/cpu.c
index ecab40c..f6e24f3 100644
--- a/arch/arm/mach-s5p64x0/cpu.c
+++ b/arch/arm/mach-s5p64x0/cpu.c
@@ -40,6 +40,7 @@
 #include plat/s5p6450.h
 #include plat/adc-core.h
 #include plat/fb-core.h
+#include plat/sdhci.h
 
 /* Initial IO mappings */
 
@@ -112,6 +113,10 @@ void __init s5p6440_map_io(void)
s3c_adc_setname(s3c64xx-adc);
s3c_fb_setname(s5p64x0-fb);
 
+   s5p64x0_default_sdhci0();
+   s5p64x0_default_sdhci1();
+   s5p6440_default_sdhci2();
+
iotable_init(s5p64x0_iodesc, ARRAY_SIZE(s5p64x0_iodesc));
iotable_init(s5p6440_iodesc, ARRAY_SIZE(s5p6440_iodesc));
init_consistent_dma_size(SZ_8M);
@@ -123,6 +128,10 @@ void __init s5p6450_map_io(void)
s3c_adc_setname(s3c64xx-adc);
s3c_fb_setname(s5p64x0-fb);
 
+   s5p64x0_default_sdhci0();
+   s5p64x0_default_sdhci1();
+   s5p6450_default_sdhci2();
+
iotable_init(s5p64x0_iodesc, ARRAY_SIZE(s5p64x0_iodesc));
iotable_init(s5p6450_iodesc, ARRAY_SIZE(s5p6450_iodesc));
init_consistent_dma_size(SZ_8M);
diff --git a/arch/arm/mach-s5p64x0/setup-sdhci-gpio.c 
b/arch/arm/mach-s5p64x0/setup-sdhci-gpio.c
new file mode 100644
index 000..8410af0
--- /dev/null
+++ b/arch/arm/mach-s5p64x0/setup-sdhci-gpio.c
@@ -0,0 +1,104 @@
+/* linux/arch/arm/mach-s5p64x0/setup-sdhci-gpio.c
+ *
+ * Copyright (c) 2011 Samsung Electronics Co., Ltd.
+ * http://www.samsung.com/
+ *
+ * S5P64X0 - Helper functions for setting up SDHCI device(s) GPIO (HSMMC)
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+*/
+
+#include linux/platform_device.h
+#include linux/io.h
+#include linux/gpio.h
+
+#include mach/regs-gpio.h
+#include mach/regs-clock.h
+
+#include plat/gpio-cfg.h
+#include plat/sdhci.h
+#include plat/cpu.h
+
+void s5p64x0_setup_sdhci0_cfg_gpio(struct platform_device *dev, int width)
+{
+   struct s3c_sdhci_platdata *pdata = dev-dev.platform_data;
+
+   /* Set all the necessary GPG pins 

[PATCH 3/3] ARM: S5P64X0: Enable SDHCI support

2011-11-04 Thread Rajeshwari Shinde
Enables SDHCI supports for SMDK6440 and SMDK6450.

Signed-off-by: Rajeshwari Shinde rajeshwar...@samsung.com
---
 arch/arm/mach-s5p64x0/mach-smdk6440.c |   25 +
 arch/arm/mach-s5p64x0/mach-smdk6450.c |   26 +-
 2 files changed, 50 insertions(+), 1 deletions(-)

diff --git a/arch/arm/mach-s5p64x0/mach-smdk6440.c 
b/arch/arm/mach-s5p64x0/mach-smdk6440.c
index d828fd3..79967d1 100644
--- a/arch/arm/mach-s5p64x0/mach-smdk6440.c
+++ b/arch/arm/mach-s5p64x0/mach-smdk6440.c
@@ -24,6 +24,7 @@
 #include linux/gpio.h
 #include linux/pwm_backlight.h
 #include linux/fb.h
+#include linux/mmc/host.h
 
 #include video/platform_lcd.h
 
@@ -53,6 +54,7 @@
 #include plat/fb.h
 #include plat/regs-fb.h
 #include plat/s3c64xx-spi.h
+#include plat/sdhci.h
 
 #define SMDK6440_UCON_DEFAULT  (S3C2410_UCON_TXILEVEL |\
S3C2410_UCON_RXILEVEL | \
@@ -162,6 +164,25 @@ static struct platform_device *smdk6440_devices[] 
__initdata = {
s5p6440_device_iis,
s3c_device_fb,
smdk6440_lcd_lte480wv,
+   s3c_device_hsmmc0,
+   s3c_device_hsmmc1,
+   s3c_device_hsmmc2,
+};
+
+static struct s3c_sdhci_platdata smdk6440_hsmmc0_pdata __initdata = {
+   .cd_type= S3C_SDHCI_CD_NONE,
+};
+
+static struct s3c_sdhci_platdata smdk6440_hsmmc1_pdata __initdata = {
+   .cd_type= S3C_SDHCI_CD_INTERNAL,
+#if defined(CONFIG_S5P64X0_SD_CH1_8BIT)
+   .max_width  = 8,
+   .host_caps  = MMC_CAP_8_BIT_DATA,
+#endif
+};
+
+static struct s3c_sdhci_platdata smdk6440_hsmmc2_pdata __initdata = {
+   .cd_type= S3C_SDHCI_CD_NONE,
 };
 
 static struct s3c2410_platform_i2c s5p6440_i2c0_data __initdata = {
@@ -253,6 +274,10 @@ static void __init smdk6440_machine_init(void)
s5p6440_set_lcd_interface();
s3c_fb_set_platdata(smdk6440_lcd_pdata);
 
+   s3c_sdhci0_set_platdata(smdk6440_hsmmc0_pdata);
+   s3c_sdhci1_set_platdata(smdk6440_hsmmc1_pdata);
+   s3c_sdhci2_set_platdata(smdk6440_hsmmc2_pdata);
+
platform_add_devices(smdk6440_devices, ARRAY_SIZE(smdk6440_devices));
 }
 
diff --git a/arch/arm/mach-s5p64x0/mach-smdk6450.c 
b/arch/arm/mach-s5p64x0/mach-smdk6450.c
index 73224b2..6a4d41c 100644
--- a/arch/arm/mach-s5p64x0/mach-smdk6450.c
+++ b/arch/arm/mach-s5p64x0/mach-smdk6450.c
@@ -24,6 +24,7 @@
 #include linux/gpio.h
 #include linux/pwm_backlight.h
 #include linux/fb.h
+#include linux/mmc/host.h
 
 #include video/platform_lcd.h
 
@@ -53,6 +54,7 @@
 #include plat/fb.h
 #include plat/regs-fb.h
 #include plat/s3c64xx-spi.h
+#include plat/sdhci.h
 
 #define SMDK6450_UCON_DEFAULT  (S3C2410_UCON_TXILEVEL |\
S3C2410_UCON_RXILEVEL | \
@@ -180,10 +182,28 @@ static struct platform_device *smdk6450_devices[] 
__initdata = {
s5p6450_device_iis0,
s3c_device_fb,
smdk6450_lcd_lte480wv,
-
+   s3c_device_hsmmc0,
+   s3c_device_hsmmc1,
+   s3c_device_hsmmc2,
/* s5p6450_device_spi0 will be added */
 };
 
+static struct s3c_sdhci_platdata smdk6450_hsmmc0_pdata __initdata = {
+   .cd_type= S3C_SDHCI_CD_NONE,
+};
+
+static struct s3c_sdhci_platdata smdk6450_hsmmc1_pdata __initdata = {
+   .cd_type= S3C_SDHCI_CD_NONE,
+#if defined(CONFIG_S5P64X0_SD_CH1_8BIT)
+   .max_width  = 8,
+   .host_caps  = MMC_CAP_8_BIT_DATA,
+#endif
+};
+
+static struct s3c_sdhci_platdata smdk6450_hsmmc2_pdata __initdata = {
+   .cd_type= S3C_SDHCI_CD_NONE,
+};
+
 static struct s3c2410_platform_i2c s5p6450_i2c0_data __initdata = {
.flags  = 0,
.slave_addr = 0x10,
@@ -273,6 +293,10 @@ static void __init smdk6450_machine_init(void)
s5p6450_set_lcd_interface();
s3c_fb_set_platdata(smdk6450_lcd_pdata);
 
+   s3c_sdhci0_set_platdata(smdk6450_hsmmc0_pdata);
+   s3c_sdhci1_set_platdata(smdk6450_hsmmc1_pdata);
+   s3c_sdhci2_set_platdata(smdk6450_hsmmc2_pdata);
+
platform_add_devices(smdk6450_devices, ARRAY_SIZE(smdk6450_devices));
 }
 
-- 
1.7.4.4

--
To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 2/3] ARM: S5P64X0: Add lookup of sdhci-s3c clocks using generic names

2011-11-04 Thread Rajeshwari Shinde
Add support for lookup of sdhci-s3c controller clocks using generic
names for s5p64x0

Signed-off-by: Rajeshwari Shinde rajeshwar...@samsung.com
---
 arch/arm/mach-s5p64x0/clock-s5p6440.c |   72 +++--
 arch/arm/mach-s5p64x0/clock-s5p6450.c |   72 +++--
 2 files changed, 84 insertions(+), 60 deletions(-)

diff --git a/arch/arm/mach-s5p64x0/clock-s5p6440.c 
b/arch/arm/mach-s5p64x0/clock-s5p6440.c
index 73c7cc9..c041ad7 100644
--- a/arch/arm/mach-s5p64x0/clock-s5p6440.c
+++ b/arch/arm/mach-s5p64x0/clock-s5p6440.c
@@ -379,36 +379,6 @@ static struct clksrc_sources clkset_audio = {
 static struct clksrc_clk clksrcs[] = {
{
.clk= {
-   .name   = sclk_mmc,
-   .devname= s3c-sdhci.0,
-   .ctrlbit= (1  24),
-   .enable = s5p64x0_sclk_ctrl,
-   },
-   .sources = clkset_group1,
-   .reg_src = { .reg = S5P64X0_CLK_SRC0, .shift = 18, .size = 2 },
-   .reg_div = { .reg = S5P64X0_CLK_DIV1, .shift = 0, .size = 4 },
-   }, {
-   .clk= {
-   .name   = sclk_mmc,
-   .devname= s3c-sdhci.1,
-   .ctrlbit= (1  25),
-   .enable = s5p64x0_sclk_ctrl,
-   },
-   .sources = clkset_group1,
-   .reg_src = { .reg = S5P64X0_CLK_SRC0, .shift = 20, .size = 2 },
-   .reg_div = { .reg = S5P64X0_CLK_DIV1, .shift = 4, .size = 4 },
-   }, {
-   .clk= {
-   .name   = sclk_mmc,
-   .devname= s3c-sdhci.2,
-   .ctrlbit= (1  26),
-   .enable = s5p64x0_sclk_ctrl,
-   },
-   .sources = clkset_group1,
-   .reg_src = { .reg = S5P64X0_CLK_SRC0, .shift = 22, .size = 2 },
-   .reg_div = { .reg = S5P64X0_CLK_DIV1, .shift = 8, .size = 4 },
-   }, {
-   .clk= {
.name   = sclk_post,
.ctrlbit= (1  10),
.enable = s5p64x0_sclk_ctrl,
@@ -446,6 +416,42 @@ static struct clksrc_clk clksrcs[] = {
},
 };
 
+static struct clksrc_clk clk_sclk_mmc0 = {
+   .clk= {
+   .name   = sclk_mmc,
+   .devname= s3c-sdhci.0,
+   .ctrlbit= (1  24),
+   .enable = s5p64x0_sclk_ctrl,
+   },
+   .sources = clkset_group1,
+   .reg_src = { .reg = S5P64X0_CLK_SRC0, .shift = 18, .size = 2 },
+   .reg_div = { .reg = S5P64X0_CLK_DIV1, .shift = 0, .size = 4 },
+};
+
+static struct clksrc_clk clk_sclk_mmc1 = {
+   .clk= {
+   .name   = sclk_mmc,
+   .devname= s3c-sdhci.1,
+   .ctrlbit= (1  25),
+   .enable = s5p64x0_sclk_ctrl,
+   },
+   .sources = clkset_group1,
+   .reg_src = { .reg = S5P64X0_CLK_SRC0, .shift = 20, .size = 2 },
+   .reg_div = { .reg = S5P64X0_CLK_DIV1, .shift = 4, .size = 4 },
+};
+
+static struct clksrc_clk clk_sclk_mmc2 = {
+   .clk= {
+   .name   = sclk_mmc,
+   .devname= s3c-sdhci.2,
+   .ctrlbit= (1  26),
+   .enable = s5p64x0_sclk_ctrl,
+   },
+   .sources = clkset_group1,
+   .reg_src = { .reg = S5P64X0_CLK_SRC0, .shift = 22, .size = 2 },
+   .reg_div = { .reg = S5P64X0_CLK_DIV1, .shift = 8, .size = 4 },
+};
+
 static struct clksrc_clk clk_sclk_uclk = {
.clk= {
.name   = uclk1,
@@ -503,6 +509,9 @@ static struct clksrc_clk *clksrc_cdev[] = {
clk_sclk_uclk,
clk_sclk_spi0,
clk_sclk_spi1,
+   clk_sclk_mmc0,
+   clk_sclk_mmc1,
+   clk_sclk_mmc2
 };
 
 static struct clk_lookup s5p6440_clk_lookup[] = {
@@ -511,6 +520,9 @@ static struct clk_lookup s5p6440_clk_lookup[] = {
CLKDEV_INIT(NULL, spi_busclk0, clk_p),
CLKDEV_INIT(s3c64xx-spi.0, spi_busclk1, clk_sclk_spi0.clk),
CLKDEV_INIT(s3c64xx-spi.1, spi_busclk1, clk_sclk_spi1.clk),
+   CLKDEV_INIT(s3c-sdhci.0, mmc_busclk.2, clk_sclk_mmc0.clk),
+   CLKDEV_INIT(s3c-sdhci.1, mmc_busclk.2, clk_sclk_mmc1.clk),
+   CLKDEV_INIT(s3c-sdhci.2, mmc_busclk.2, clk_sclk_mmc2.clk),
 };
 
 void __init_or_cpufreq s5p6440_setup_clocks(void)
diff --git a/arch/arm/mach-s5p64x0/clock-s5p6450.c 
b/arch/arm/mach-s5p64x0/clock-s5p6450.c
index 50f90cb..b5087cb 100644
--- a/arch/arm/mach-s5p64x0/clock-s5p6450.c
+++ b/arch/arm/mach-s5p64x0/clock-s5p6450.c
@@ -413,36 +413,6 @@ static struct clksrc_clk clk_sclk_audio0 = {
 static struct clksrc_clk clksrcs[] = {
{
.clk= {
-   .name

Re: [PATCH 2/2] mmc: core: Support packed command for eMMC4.5 device

2011-11-04 Thread S, Venkatraman
On Thu, Nov 3, 2011 at 7:23 AM, Seungwon Jeon tgih@samsung.com wrote:
 S, Venkatraman svenk...@ti.com wrote:
 On Wed, Nov 2, 2011 at 1:33 PM, Seungwon Jeon tgih@samsung.com wrote:
  This patch supports packed command of eMMC4.5 device.
  Several reads(or writes) can be grouped in packed command
  and all data of the individual commands can be sent in a
  single transfer on the bus.
 
  Signed-off-by: Seungwon Jeon tgih@samsung.com
  ---
   drivers/mmc/card/block.c |  355 
  --
   drivers/mmc/card/queue.c |   48 ++-
   drivers/mmc/card/queue.h |   12 ++
   include/linux/mmc/core.h |    3 +
   4 files changed, 404 insertions(+), 14 deletions(-)
 
  diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c
  index a1cb21f..6c49656 100644
  --- a/drivers/mmc/card/block.c
  +++ b/drivers/mmc/card/block.c
  @@ -59,6 +59,13 @@ MODULE_ALIAS(mmc:block);
   #define INAND_CMD38_ARG_SECTRIM1 0x81
   #define INAND_CMD38_ARG_SECTRIM2 0x88
 
  +#define mmc_req_rel_wr(req)    (((req-cmd_flags  REQ_FUA) || \
  +                       (req-cmd_flags  REQ_META))  \
  +                       (rq_data_dir(req) == WRITE))
  +#define PACKED_CMD_VER         0x01
  +#define PACKED_CMD_RD          0x01
  +#define PACKED_CMD_WR          0x02
  +
   static DEFINE_MUTEX(block_mutex);
 
   /*
  @@ -943,7 +950,8 @@ static int mmc_blk_err_check(struct mmc_card *card,
          * kind.  If it was a write, we may have transitioned to
          * program mode, which we have to wait for it to complete.
          */
  -       if (!mmc_host_is_spi(card-host)  rq_data_dir(req) != READ) {
  +       if ((!mmc_host_is_spi(card-host)  rq_data_dir(req) != READ) ||
  +                       (mq_mrq-packed_cmd == MMC_PACKED_WR_HDR)) {
                 u32 status;
                 do {
                         int err = get_card_status(card, status, 5);
  @@ -980,12 +988,67 @@ static int mmc_blk_err_check(struct mmc_card *card,
         if (!brq-data.bytes_xfered)
                 return MMC_BLK_RETRY;
 
  +       if (mq_mrq-packed_cmd != MMC_PACKED_NONE) {
  +               if (unlikely(brq-data.blocks  9 != 
  brq-data.bytes_xfered))
  +                       return MMC_BLK_PARTIAL;
  +               else
  +                       return MMC_BLK_SUCCESS;
  +       }
  +
         if (blk_rq_bytes(req) != brq-data.bytes_xfered)
                 return MMC_BLK_PARTIAL;
 
         return MMC_BLK_SUCCESS;
   }
 
  +static int mmc_blk_packed_err_check(struct mmc_card *card,
  +                            struct mmc_async_req *areq)
  +{
  +       struct mmc_queue_req *mq_mrq = container_of(areq, struct 
  mmc_queue_req,
  +                                                   mmc_active);
  +       int err, check, status;
  +       u8 ext_csd[512];
  +
  +       check = mmc_blk_err_check(card, areq);
  +
  +       if (check == MMC_BLK_SUCCESS)
  +               return check;
  +
  +       if (check == MMC_BLK_PARTIAL) {
  +               err = get_card_status(card, status, 0);
  +               if (err)
  +                       return MMC_BLK_ABORT;
  +
  +               if (status  R1_EXP_EVENT) {
  +                       err = mmc_send_ext_csd(card, ext_csd);
  +                       if (err)
  +                               return MMC_BLK_ABORT;
  +
  +                       if ((ext_csd[EXT_CSD_EXP_EVENTS_STATUS + 0] 
  +                                               EXT_CSD_PACKED_FAILURE) 
  +                                       
  (ext_csd[EXT_CSD_PACKED_CMD_STATUS] 
  +                                        EXT_CSD_PACKED_GENERIC_ERROR)) {
  +                               if (ext_csd[EXT_CSD_PACKED_CMD_STATUS] 
  +                                               
  EXT_CSD_PACKED_INDEXED_ERROR) {
  +                                       /* Make be 0-based */
  +                                       mq_mrq-packed_fail_idx =
  +                                               
  ext_csd[EXT_CSD_PACKED_FAILURE_INDEX] - 1;
  +                                       return MMC_BLK_PARTIAL;
  +                               } else {
  +                                       return MMC_BLK_RETRY;
  +                               }
  +                       }
  +               } else {
  +                       return MMC_BLK_RETRY;
  +               }
  +       }
  +
  +       if (check != MMC_BLK_ABORT)
  +               return MMC_BLK_RETRY;
  +       else
  +               return MMC_BLK_ABORT;
  +}
  +
   static void mmc_blk_rw_rq_prep(struct mmc_queue_req *mqrq,
                                struct mmc_card *card,
                                int disable_multi,
  @@ -1129,6 +1192,211 @@ static void mmc_blk_rw_rq_prep(struct 
  mmc_queue_req *mqrq,
         mmc_queue_bounce_pre(mqrq);
   }
 
  +static u8 mmc_blk_chk_packable(struct mmc_queue *mq, struct request *req)
  +{
  +       struct request_queue *q = mq-queue;
  +       struct mmc_card *card = mq-card;
  +       struct 

[PATCH 0/4]ARM: exynos4: Add l2 retention mode cpuidle state

2011-11-04 Thread amit . kachhap
From: Amit Daniel Kachhap amit.kach...@linaro.org

This Patch series adds support for AFTR mode cpuidle state based on 
patch (http://www.spinics.net/lists/arm-kernel/msg132243.html) earlier
submitted by Jaecheol Lee jc@samsung.com.

This patch uses CPU PM notifiers , common l2 save/restore and 
new cpu_suspend/resume interfaces and is based on the tip of 
linus tree(git://github.com/torvalds/linux.git). 

Amit Daniel Kachhap (3):
  ARM: exynos4: Add support for AFTR mode cpuidle state
  ARM: exynos4: add L2 early resume code
  ARM: exynos4: remove useless code to save/restore L2 and GIC state

Lorenzo Pieralisi (1):
  ARM: exynos4: remove useless churn in sleep.S

 arch/arm/mach-exynos4/cpu.c  |   43 ++--
 arch/arm/mach-exynos4/cpuidle.c  |  152 +-
 arch/arm/mach-exynos4/include/mach/pmu.h |2 +
 arch/arm/mach-exynos4/pm.c   |   86 -
 arch/arm/mach-exynos4/sleep.S|   29 +-
 5 files changed, 210 insertions(+), 102 deletions(-)

-- 
1.7.5.4

--
To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 1/4] ARM: exynos4: Add support for AFTR mode cpuidle state

2011-11-04 Thread amit . kachhap
From: Amit Daniel Kachhap amit.kach...@linaro.org

This patch adds support for AFTR(ARM OFF TOP RUNNING) mode in
cpuidle driver for EXYNOS4210. L2 cache keeps their data in this mode.
This patch ports the code to the latest interfaces to
save/restore CPU state inclusive of CPU PM notifiers, l2
resume and cpu_suspend/resume.

Signed-off-by: Jaecheol Lee jc@samsung.com
Signed-off-by: Lorenzo Pieralisi lorenzo.pieral...@arm.com
Signed-off-by: Amit Daniel Kachhap amit.kach...@linaro.org
---
 arch/arm/mach-exynos4/cpuidle.c  |  152 +-
 arch/arm/mach-exynos4/include/mach/pmu.h |2 +
 2 files changed, 151 insertions(+), 3 deletions(-)

diff --git a/arch/arm/mach-exynos4/cpuidle.c b/arch/arm/mach-exynos4/cpuidle.c
index bf7e96f..111ccc3 100644
--- a/arch/arm/mach-exynos4/cpuidle.c
+++ b/arch/arm/mach-exynos4/cpuidle.c
@@ -11,22 +11,48 @@
 #include linux/kernel.h
 #include linux/init.h
 #include linux/cpuidle.h
+#include linux/cpu_pm.h
 #include linux/io.h
-
+#include linux/suspend.h
+#include linux/err.h
 #include asm/proc-fns.h
+#include asm/smp_scu.h
+#include asm/suspend.h
+#include asm/unified.h
+#include mach/regs-pmu.h
+#include mach/pmu.h
+
+#include plat/exynos4.h
+#include plat/cpu.h
+
+#define REG_DIRECTGO_ADDR  (samsung_rev() == EXYNOS4210_REV_1_1 ? \
+   S5P_INFORM7 : (S5P_VA_SYSRAM + 0x24))
+#define REG_DIRECTGO_FLAG  (samsung_rev() == EXYNOS4210_REV_1_1 ? \
+   S5P_INFORM6 : (S5P_VA_SYSRAM + 0x20))
 
 static int exynos4_enter_idle(struct cpuidle_device *dev,
  struct cpuidle_state *state);
 
+static int exynos4_enter_lowpower(struct cpuidle_device *dev,
+ struct cpuidle_state *state);
+
 static struct cpuidle_state exynos4_cpuidle_set[] = {
[0] = {
.enter  = exynos4_enter_idle,
.exit_latency   = 1,
.target_residency   = 10,
.flags  = CPUIDLE_FLAG_TIME_VALID,
-   .name   = IDLE,
+   .name   = C0,
.desc   = ARM clock gating(WFI),
},
+   [1] = {
+   .enter  = exynos4_enter_lowpower,
+   .exit_latency   = 300,
+   .target_residency   = 10,
+   .flags  = CPUIDLE_FLAG_TIME_VALID,
+   .name   = C1,
+   .desc   = ARM power down,
+   },
 };
 
 static DEFINE_PER_CPU(struct cpuidle_device, exynos4_cpuidle_device);
@@ -36,6 +62,96 @@ static struct cpuidle_driver exynos4_idle_driver = {
.owner  = THIS_MODULE,
 };
 
+/* Ext-GIC nIRQ/nFIQ is the only wakeup source in AFTR */
+static void exynos4_set_wakeupmask(void)
+{
+   __raw_writel(0xff3e, S5P_WAKEUP_MASK);
+}
+
+static unsigned int g_pwr_ctrl, g_diag_reg;
+
+static void save_cpu_arch_register(void)
+{
+   /*read power control register*/
+   asm(mrc p15, 0, %0, c15, c0, 0 : =r(g_pwr_ctrl) : : cc);
+   /*read diagnostic register*/
+   asm(mrc p15, 0, %0, c15, c0, 1 : =r(g_diag_reg) : : cc);
+   return;
+}
+
+static void restore_cpu_arch_register(void)
+{
+   /*write power control register*/
+   asm(mcr p15, 0, %0, c15, c0, 0 : : r(g_pwr_ctrl) : cc);
+   /*write diagnostic register*/
+   asm(mcr p15, 0, %0, c15, c0, 1 : : r(g_diag_reg) : cc);
+   return;
+}
+
+static int idle_finisher(unsigned long flags)
+{
+   cpu_do_idle();
+   return 1;
+}
+
+static int exynos4_enter_core0_aftr(struct cpuidle_device *dev,
+   struct cpuidle_state *state)
+{
+   struct timeval before, after;
+   int idle_time;
+   unsigned long tmp;
+
+   local_irq_disable();
+   do_gettimeofday(before);
+
+   exynos4_set_wakeupmask();
+
+   /* Set value of power down register for aftr mode */
+   exynos4_sys_powerdown_conf(SYS_AFTR);
+
+   save_cpu_arch_register();
+
+   /* Setting Central Sequence Register for power down mode */
+   tmp = __raw_readl(S5P_CENTRAL_SEQ_CONFIGURATION);
+   tmp = ~S5P_CENTRAL_LOWPWR_CFG;
+   __raw_writel(tmp, S5P_CENTRAL_SEQ_CONFIGURATION);
+
+   cpu_pm_enter();
+   cpu_cluster_pm_enter();
+
+   cpu_suspend(0, idle_finisher);
+
+   scu_enable(S5P_VA_SCU);
+
+   cpu_cluster_pm_exit();
+   cpu_pm_exit();
+
+   restore_cpu_arch_register();
+
+   /*
+* If PMU failed while entering sleep mode, WFI will be
+* ignored by PMU and then exiting cpu_do_idle().
+* S5P_CENTRAL_LOWPWR_CFG bit will not be set automatically
+* in this situation.
+*/
+   tmp = __raw_readl(S5P_CENTRAL_SEQ_CONFIGURATION);
+   if (!(tmp  S5P_CENTRAL_LOWPWR_CFG)) {
+   tmp |= S5P_CENTRAL_LOWPWR_CFG;
+   

[PATCH 2/4] ARM: exynos4: remove useless churn in sleep.S

2011-11-04 Thread amit . kachhap
From: Lorenzo Pieralisi lorenzo.pieral...@arm.com

This patch cleans up sleep code in preparation for L2 resume code
and hotplug functions

Signed-off-by: Lorenzo Pieralisi lorenzo.pieral...@arm.com
---
 arch/arm/mach-exynos4/sleep.S |3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mach-exynos4/sleep.S b/arch/arm/mach-exynos4/sleep.S
index 0984078..c19527b 100644
--- a/arch/arm/mach-exynos4/sleep.S
+++ b/arch/arm/mach-exynos4/sleep.S
@@ -27,8 +27,6 @@
 */
 
 #include linux/linkage.h
-#include asm/assembler.h
-#include asm/memory.h
 
.text
 
@@ -52,3 +50,4 @@
 
 ENTRY(s3c_cpu_resume)
b   cpu_resume
+ENDPROC(s3c_cpu_resume)
-- 
1.7.5.4

--
To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 3/4] ARM: exynos4: add L2 early resume code

2011-11-04 Thread amit . kachhap
From: Amit Daniel Kachhap amit.kach...@linaro.org

This patch adds code to save L2 register configuration at boot, and to
resume L2 before MMU is enabled in suspend and cpuidle resume paths.

Signed-off-by: Lorenzo Pieralisi lorenzo.pieral...@arm.com
Signed-off-by: Amit Daniel Kachhap amit.kach...@linaro.org
---
 arch/arm/mach-exynos4/cpu.c   |   43 ++--
 arch/arm/mach-exynos4/sleep.S |   26 
 2 files changed, 58 insertions(+), 11 deletions(-)

diff --git a/arch/arm/mach-exynos4/cpu.c b/arch/arm/mach-exynos4/cpu.c
index a348434..53c6cd3 100644
--- a/arch/arm/mach-exynos4/cpu.c
+++ b/arch/arm/mach-exynos4/cpu.c
@@ -11,6 +11,7 @@
 #include linux/sched.h
 #include linux/sysdev.h
 
+#include asm/cacheflush.h
 #include asm/mach/map.h
 #include asm/mach/irq.h
 
@@ -31,6 +32,7 @@
 
 #include mach/regs-irq.h
 #include mach/regs-pmu.h
+#include mach/pmu.h
 
 unsigned int gic_bank_offset __read_mostly;
 
@@ -254,20 +256,39 @@ core_initcall(exynos4_core_init);
 #ifdef CONFIG_CACHE_L2X0
 static int __init exynos4_l2x0_cache_init(void)
 {
-   /* TAG, Data Latency Control: 2cycle */
-   __raw_writel(0x110, S5P_VA_L2CC + L2X0_TAG_LATENCY_CTRL);
+   if (!(__raw_readl(S5P_VA_L2CC + L2X0_CTRL)  0x1)) {
 
-   if (soc_is_exynos4210())
-   __raw_writel(0x110, S5P_VA_L2CC + L2X0_DATA_LATENCY_CTRL);
-   else if (soc_is_exynos4212() || soc_is_exynos4412())
-   __raw_writel(0x120, S5P_VA_L2CC + L2X0_DATA_LATENCY_CTRL);
+   l2x0_saved_regs.phy_base = EXYNOS4_PA_L2CC;
+   /* TAG, Data Latency Control: 2 cycles */
+   l2x0_saved_regs.tag_latency = 0x110;
+
+   if (soc_is_exynos4212() || soc_is_exynos4412())
+   l2x0_saved_regs.data_latency = 0x120;
+   else
+   l2x0_saved_regs.data_latency = 0x110;
+
+   l2x0_saved_regs.prefetch_ctrl = 0x3007;
+   l2x0_saved_regs.pwr_ctrl =
+   (L2X0_DYNAMIC_CLK_GATING_EN | L2X0_STNDBY_MODE_EN);
 
-   /* L2X0 Prefetch Control */
-   __raw_writel(0x3007, S5P_VA_L2CC + L2X0_PREFETCH_CTRL);
+   l2x0_regs_phys = virt_to_phys(l2x0_saved_regs);
 
-   /* L2X0 Power Control */
-   __raw_writel(L2X0_DYNAMIC_CLK_GATING_EN | L2X0_STNDBY_MODE_EN,
-S5P_VA_L2CC + L2X0_POWER_CTRL);
+   __raw_writel(l2x0_saved_regs.tag_latency,
+   S5P_VA_L2CC + L2X0_TAG_LATENCY_CTRL);
+   __raw_writel(l2x0_saved_regs.data_latency,
+   S5P_VA_L2CC + L2X0_DATA_LATENCY_CTRL);
+
+   /* L2X0 Prefetch Control */
+   __raw_writel(l2x0_saved_regs.prefetch_ctrl,
+   S5P_VA_L2CC + L2X0_PREFETCH_CTRL);
+
+   /* L2X0 Power Control */
+   __raw_writel(l2x0_saved_regs.pwr_ctrl,
+   S5P_VA_L2CC + L2X0_POWER_CTRL);
+
+   clean_dcache_area(l2x0_regs_phys, sizeof(unsigned long));
+   clean_dcache_area(l2x0_saved_regs, sizeof(struct l2x0_regs));
+   }
 
l2x0_init(S5P_VA_L2CC, 0x7C470001, 0xC200);
 
diff --git a/arch/arm/mach-exynos4/sleep.S b/arch/arm/mach-exynos4/sleep.S
index c19527b..3284213 100644
--- a/arch/arm/mach-exynos4/sleep.S
+++ b/arch/arm/mach-exynos4/sleep.S
@@ -27,6 +27,8 @@
 */
 
 #include linux/linkage.h
+#include asm/asm-offsets.h
+#include asm/hardware/cache-l2x0.h
 
.text
 
@@ -47,7 +49,31 @@
 * other way of restoring the stack pointer after sleep, and we
 * must not write to the code segment (code is read-only)
 */
+   .align
+   .data
 
 ENTRY(s3c_cpu_resume)
+   adr r0, l2x0_regs_phys
+   ldr r0, [r0]
+   ldr r1, [r0, #L2X0_R_PHY_BASE]
+   ldr r2, [r1, #L2X0_CTRL]
+   tst r2, #0x1
+   bne resume_l2on
+   ldr r2, [r0, #L2X0_R_AUX_CTRL]
+   str r2, [r1, #L2X0_AUX_CTRL]
+   ldr r2, [r0, #L2X0_R_TAG_LATENCY]
+   str r2, [r1, #L2X0_TAG_LATENCY_CTRL]
+   ldr r2, [r0, #L2X0_R_DATA_LATENCY]
+   str r2, [r1, #L2X0_DATA_LATENCY_CTRL]
+   ldr r2, [r0, #L2X0_R_PREFETCH_CTRL]
+   str r2, [r1, #L2X0_PREFETCH_CTRL]
+   ldr r2, [r0, #L2X0_R_PWR_CTRL]
+   str r2, [r1, #L2X0_POWER_CTRL]
+   mov r2, #1
+   str r2, [r1, #L2X0_CTRL]
+resume_l2on:
b   cpu_resume
 ENDPROC(s3c_cpu_resume)
+   .globl l2x0_regs_phys
+l2x0_regs_phys:
+   .long   0
-- 
1.7.5.4

--
To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 4/4] ARM: exynos4: remove useless code to save/restore L2 and GIC state

2011-11-04 Thread amit . kachhap
From: Amit Daniel Kachhap amit.kach...@linaro.org

Following the merge of CPU PM notifiers and L2 resume code, this patch
removes useless code to save and restore L2 and GIC registers.

This is now automatically covered by suspend calls which integrated
CPU PM notifiers and new sleep code that allows to resume L2 before MMU
is turned on.

Signed-off-by: Lorenzo Pieralisi lorenzo.pieral...@arm.com
Signed-off-by: Amit Daniel Kachhap amit.kach...@linaro.org
---
 arch/arm/mach-exynos4/pm.c |   86 
 1 files changed, 0 insertions(+), 86 deletions(-)

diff --git a/arch/arm/mach-exynos4/pm.c b/arch/arm/mach-exynos4/pm.c
index 62e4f43..7499f14 100644
--- a/arch/arm/mach-exynos4/pm.c
+++ b/arch/arm/mach-exynos4/pm.c
@@ -63,77 +63,6 @@ static struct sleep_save exynos4_vpll_save[] = {
 };
 
 static struct sleep_save exynos4_core_save[] = {
-   /* GIC side */
-   SAVE_ITEM(S5P_VA_GIC_CPU + 0x000),
-   SAVE_ITEM(S5P_VA_GIC_CPU + 0x004),
-   SAVE_ITEM(S5P_VA_GIC_CPU + 0x008),
-   SAVE_ITEM(S5P_VA_GIC_CPU + 0x00C),
-   SAVE_ITEM(S5P_VA_GIC_CPU + 0x014),
-   SAVE_ITEM(S5P_VA_GIC_CPU + 0x018),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x000),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x004),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x100),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x104),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x108),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x300),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x304),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x308),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x400),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x404),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x408),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x40C),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x410),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x414),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x418),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x41C),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x420),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x424),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x428),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x42C),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x430),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x434),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x438),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x43C),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x440),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x444),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x448),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x44C),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x450),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x454),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x458),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x45C),
-
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x800),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x804),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x808),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x80C),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x810),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x814),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x818),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x81C),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x820),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x824),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x828),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x82C),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x830),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x834),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x838),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x83C),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x840),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x844),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x848),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x84C),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x850),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x854),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x858),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0x85C),
-
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0xC00),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0xC04),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0xC08),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0xC0C),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0xC10),
-   SAVE_ITEM(S5P_VA_GIC_DIST + 0xC14),
 
SAVE_ITEM(S5P_VA_COMBINER_BASE + 0x000),
SAVE_ITEM(S5P_VA_COMBINER_BASE + 0x010),
@@ -154,13 +83,6 @@ static struct sleep_save exynos4_core_save[] = {
SAVE_ITEM(S5P_SROM_BC3),
 };
 
-static struct sleep_save exynos4_l2cc_save[] = {
-   SAVE_ITEM(S5P_VA_L2CC + L2X0_TAG_LATENCY_CTRL),
-   SAVE_ITEM(S5P_VA_L2CC + L2X0_DATA_LATENCY_CTRL),
-   SAVE_ITEM(S5P_VA_L2CC + L2X0_PREFETCH_CTRL),
-   SAVE_ITEM(S5P_VA_L2CC + L2X0_POWER_CTRL),
-   SAVE_ITEM(S5P_VA_L2CC + L2X0_AUX_CTRL),
-};
 
 /* For Cortex-A9 Diagnostic and Power control register */
 static unsigned int save_arm_register[2];
@@ -181,7 +103,6 @@ static void exynos4_pm_prepare(void)
u32 tmp;
 
s3c_pm_do_save(exynos4_core_save, ARRAY_SIZE(exynos4_core_save));
-   s3c_pm_do_save(exynos4_l2cc_save, ARRAY_SIZE(exynos4_l2cc_save));
s3c_pm_do_save(exynos4_epll_save, ARRAY_SIZE(exynos4_epll_save));
s3c_pm_do_save(exynos4_vpll_save, ARRAY_SIZE(exynos4_vpll_save));
 
@@ -397,13 +318,6 @@ static void exynos4_pm_resume(void)
 

Re: [PATCH 4/4] ARM: exynos4: remove useless code to save/restore L2 and GIC state

2011-11-04 Thread Sylwester Nawrocki
On 11/04/2011 06:03 PM, amit.kach...@linaro.org wrote:
 From: Amit Daniel Kachhap amit.kach...@linaro.org
 
 Following the merge of CPU PM notifiers and L2 resume code, this patch
 removes useless code to save and restore L2 and GIC registers.
 
 This is now automatically covered by suspend calls which integrated
 CPU PM notifiers and new sleep code that allows to resume L2 before MMU
 is turned on.
 
 Signed-off-by: Lorenzo Pieralisi lorenzo.pieral...@arm.com
 Signed-off-by: Amit Daniel Kachhap amit.kach...@linaro.org
 ---
  arch/arm/mach-exynos4/pm.c |   86 
 
  1 files changed, 0 insertions(+), 86 deletions(-)
 
 diff --git a/arch/arm/mach-exynos4/pm.c b/arch/arm/mach-exynos4/pm.c
 index 62e4f43..7499f14 100644
 --- a/arch/arm/mach-exynos4/pm.c
 +++ b/arch/arm/mach-exynos4/pm.c
 @@ -63,77 +63,6 @@ static struct sleep_save exynos4_vpll_save[] = {
  };
  
  static struct sleep_save exynos4_core_save[] = {
 - /* GIC side */
 - SAVE_ITEM(S5P_VA_GIC_CPU + 0x000),
 - SAVE_ITEM(S5P_VA_GIC_CPU + 0x004),
 - SAVE_ITEM(S5P_VA_GIC_CPU + 0x008),
 - SAVE_ITEM(S5P_VA_GIC_CPU + 0x00C),
 - SAVE_ITEM(S5P_VA_GIC_CPU + 0x014),
 - SAVE_ITEM(S5P_VA_GIC_CPU + 0x018),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x000),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x004),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x100),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x104),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x108),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x300),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x304),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x308),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x400),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x404),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x408),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x40C),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x410),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x414),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x418),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x41C),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x420),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x424),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x428),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x42C),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x430),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x434),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x438),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x43C),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x440),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x444),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x448),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x44C),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x450),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x454),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x458),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x45C),
 -
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x800),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x804),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x808),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x80C),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x810),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x814),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x818),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x81C),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x820),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x824),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x828),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x82C),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x830),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x834),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x838),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x83C),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x840),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x844),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x848),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x84C),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x850),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x854),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x858),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0x85C),
 -
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0xC00),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0xC04),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0xC08),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0xC0C),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0xC10),
 - SAVE_ITEM(S5P_VA_GIC_DIST + 0xC14),


This list is not complete anyway, some peripheral devices interrupts do not
work after resume from system suspend to RAM.
Is there any code already handling GIC state during system suspend/resume 
cycles?
Or you refer to some upcoming patches ?

--
Thanks,
Sylwester
--
To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 5/6] mmc: Add OF bindings support for mmc host controller capabilities

2011-11-04 Thread Olof Johansson
On Thu, Nov 03, 2011 at 02:06:02AM +0530, Thomas Abraham wrote:
 Device nodes representing sd/mmc controllers in a device tree would include
 mmc host controller capabilities. Add support for parsing of mmc host
 controller capabilities included in device nodes.
 
 Signed-off-by: Thomas Abraham thomas.abra...@linaro.org
 ---
  .../devicetree/bindings/mmc/linux-mmc-host.txt |   13 
  drivers/mmc/core/host.c|   31 
 
  include/linux/mmc/host.h   |1 +
  3 files changed, 45 insertions(+), 0 deletions(-)
  create mode 100644 Documentation/devicetree/bindings/mmc/linux-mmc-host.txt
 
 diff --git a/Documentation/devicetree/bindings/mmc/linux-mmc-host.txt 
 b/Documentation/devicetree/bindings/mmc/linux-mmc-host.txt
 new file mode 100644
 index 000..714b2b1
 --- /dev/null
 +++ b/Documentation/devicetree/bindings/mmc/linux-mmc-host.txt
 @@ -0,0 +1,13 @@
 +* Linux MMC Host Controller Capabilities
 +
 +The following bindings can be used in a device node to specify any board
 +specific mmc host controller capabilities.
 +
 +- linux,mmc_cap_4_bit_data - Host can do 4-bit transfers
 +- linux,mmc_cap_mmc_highspeed - Host can do MMC high-speed timing
 +- linux,mmc_cap_sd_highspeed - Host can do SD high-speed timing
 +- linux,mmc_cap_needs_poll - Host needs polling for card detection
 +- linux,mmc_cap_8_bit_data - Host can do 8-bit transfer
 +- linux,mmc_cap_disable - Host can be disabled and re-enabled to save power
 +- linux,mmc_cap_nonremovable - Host is connected to nonremovable media
 +- linux,mmc_cap_erase - Host allows erase/trim commands

linux-prefixed properties are a big red flag. The device tree should describe
the hardware, not what linux does with the hardware.

See previous comments about support-8bit for encoding exactly the same
hardware capability in a linux-agnostic way. What the sdhci driver chooses to
do with it is up to the driver, and in some cases it means it will set the
capabilities flag.

Same goes for the other properties. It should not go in as it is
implemented in this patch, it needs to be fixed up.


-Olof
--
To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [GIT PULL] Samsung devel-4 for v3.2

2011-11-04 Thread Arnd Bergmann
On Friday 04 November 2011, Kukjin Kim wrote:
 As we talked in Prague, I'm sending 'pull request for v3.2' Samsung-devel4
 which includes supporting EXYNOS4 DT, SPI clkdev and reorganization
 arch/arm/mach-exynos and small things.
 
 Please pull from: 
   git://github.com/kgene/linux-samsung.git next-samsung-devel-4
 
 As a note, the branch includes arm-soc/next/cleanup3 and arm-soc/next/devel2
 based on mainline commit 994c0e99 (Merge branch 'next/soc' of
 git://git.linaro.org/people/arnd/arm-soc) because it is needed for this and
 they include all of Samsung stuff for v3.2.
 
 And I will be back to kernel.org after this merge window.
 
 If any problems, please let me know.

I've looked through it, and I think I'll hold off for this merge window,
especially given that I had enough trouble with the the other commits
and that the submission is really late. Please realize that I have to
push back on stuff that comes during the merge window.

Please send the contents split up into separate branches (dt, spi, clkdev,
rename, devel) for 3.3. I think it's ok if you want to send just the
rename patch for 3.2 the way we had discussed earlier, because this kind
of patch really makes sense at the end of the merge window.

Arnd
--
To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: [GIT PULL] Samsung devel-4 for v3.2

2011-11-04 Thread Kukjin Kim
Arnd Bergmann wrote:
 
 On Friday 04 November 2011, Kukjin Kim wrote:
  As we talked in Prague, I'm sending 'pull request for v3.2'
Samsung-devel4
  which includes supporting EXYNOS4 DT, SPI clkdev and reorganization
  arch/arm/mach-exynos and small things.
 
  Please pull from:
git://github.com/kgene/linux-samsung.git next-samsung-devel-4
 
  As a note, the branch includes arm-soc/next/cleanup3 and
arm-soc/next/devel2
  based on mainline commit 994c0e99 (Merge branch 'next/soc' of
  git://git.linaro.org/people/arnd/arm-soc) because it is needed for this
and
  they include all of Samsung stuff for v3.2.
 
  And I will be back to kernel.org after this merge window.
 
  If any problems, please let me know.
 
 I've looked through it, and I think I'll hold off for this merge window,
 especially given that I had enough trouble with the the other commits
 and that the submission is really late. Please realize that I have to
 push back on stuff that comes during the merge window.
 
 Please send the contents split up into separate branches (dt, spi, clkdev,
 rename, devel) for 3.3. I think it's ok if you want to send just the
 rename patch for 3.2 the way we had discussed earlier, because this kind
 of patch really makes sense at the end of the merge window.
 
Hi Arnd,

OK, I will send the rename branch in a half an hour and make separate
branches for others which will be merged next time.

Thanks.

Best regards,
Kgene.
--
Kukjin Kim kgene@samsung.com, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.

--
To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [GIT PULL] Samsung devel-4 for v3.2

2011-11-04 Thread Arnd Bergmann
On Saturday 05 November 2011, Kukjin Kim wrote:
 Arnd Bergmann wrote:

  Please send the contents split up into separate branches (dt, spi, clkdev,
  rename, devel) for 3.3. I think it's ok if you want to send just the
  rename patch for 3.2 the way we had discussed earlier, because this kind
  of patch really makes sense at the end of the merge window.
  
 Hi Arnd,
 
 OK, I will send the rename branch in a half an hour and make separate
 branches for others which will be merged next time.

Ok, very good. I'm sending the pull requests for the other two branches
right now, I assume Linus will take them quickly (or not at all if he
has unexpected objections), so you could base your pull request on top
of his merge.

Arnd
--
To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[GIT PULL] Samsung Exynos for v3.2

2011-11-04 Thread Kukjin Kim
Hi Arnd,

As you suggested, I made reorganization mach-exynos branch,
next-samsung-exynos in my tree and it has been tested on some boards.

Please pull from: 
  git://github.com/kgene/linux-samsung.git next-samsung-exynos

As a note, will finish other separate branch today.

If any problems, please let me know.

Thanks.

Best regards,
Kgene.
--
Kukjin Kim kgene@samsung.com, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.

The following changes since commit 2ef9270f2481543e49bfbdc0d125f0bf3068d246:

  Merge remote branch 'arm-soc/next/devel2' into next-samsung-dt (2011-11-02
19:12:59 +0900)

are available in the git repository at:

  git://github.com/kgene/linux-samsung.git next-samsung-exynos

Jonghwan Choi (1):
  ARM: SAMSUNG: Fix compile error due to kfree

Joonyoung Shim (1):
  ARM: SAMSUNG: Add clk enable/disable of pwm

Kukjin Kim (1):
  ARM: EXYNOS: Add ARCH_EXYNOS and reorganize arch/arm/mach-exynos

Marc Zyngier (1):
  ARM: EXYNOS4: convert MCT to percpu interrupt API

 arch/arm/Kconfig   |8 +-
 arch/arm/Makefile  |2 +-
 arch/arm/configs/exynos4_defconfig |9 +--
 arch/arm/{mach-exynos4 = mach-exynos}/Kconfig |   41 +---
 arch/arm/{mach-exynos4 = mach-exynos}/Makefile|   11 ++--
 .../{mach-exynos4 = mach-exynos}/Makefile.boot|0
 .../clock-exynos4210.c |0
 .../clock-exynos4212.c |0
 arch/arm/{mach-exynos4 = mach-exynos}/clock.c |0
 arch/arm/{mach-exynos4 = mach-exynos}/cpu.c   |   69
+++-
 arch/arm/{mach-exynos4 = mach-exynos}/cpuidle.c   |0
 arch/arm/{mach-exynos4 = mach-exynos}/dev-ahci.c  |0
 arch/arm/{mach-exynos4 = mach-exynos}/dev-audio.c |0
 arch/arm/{mach-exynos4 = mach-exynos}/dev-dwmci.c |0
 arch/arm/{mach-exynos4 = mach-exynos}/dev-pd.c|0
 .../arm/{mach-exynos4 = mach-exynos}/dev-sysmmu.c |0
 arch/arm/{mach-exynos4 = mach-exynos}/dma.c   |0
 arch/arm/{mach-exynos4 = mach-exynos}/headsmp.S   |0
 arch/arm/{mach-exynos4 = mach-exynos}/hotplug.c   |0
 .../include/mach/debug-macro.S |0
 .../include/mach/dma.h |0
 .../include/mach/dwmci.h   |0
 .../include/mach/entry-macro.S |0
 .../include/mach/exynos4-clock.h   |0
 .../include/mach/gpio.h|0
 .../include/mach/hardware.h|0
 .../include/mach/io.h  |0
 .../include/mach/irqs.h|0
 .../include/mach/map.h |   32 ++
 .../include/mach/memory.h  |0
 .../include/mach/pm-core.h |0
 .../include/mach/pmu.h |0
 .../include/mach/regs-audss.h  |0
 .../include/mach/regs-clock.h  |0
 .../include/mach/regs-gpio.h   |0
 .../include/mach/regs-irq.h|0
 .../include/mach/regs-mct.h|0
 .../include/mach/regs-mem.h|0
 .../include/mach/regs-pmu.h|0
 .../include/mach/regs-sysmmu.h |0
 .../include/mach/regs-usb-phy.h|0
 .../include/mach/sysmmu.h  |0
 .../include/mach/system.h  |0
 .../include/mach/timex.h   |0
 .../include/mach/uncompress.h  |0
 .../include/mach/vmalloc.h |0
 arch/arm/{mach-exynos4 = mach-exynos}/init.c  |0
 .../{mach-exynos4 = mach-exynos}/irq-combiner.c   |0
 arch/arm/{mach-exynos4 = mach-exynos}/irq-eint.c  |0
.../mach-armlex4210.c  |0
 arch/arm/{mach-exynos4 = mach-exynos}/mach-nuri.c |0
 .../{mach-exynos4 = mach-exynos}/mach-origen.c|0
 .../{mach-exynos4 = mach-exynos}/mach-smdk4x12.c  |0
 .../{mach-exynos4 = mach-exynos}/mach-smdkv310.c  |0
 .../mach-universal_c210.c  |0
 arch/arm/{mach-exynos4 = mach-exynos}/mct.c   |   40 
 arch/arm/{mach-exynos4 = mach-exynos}/platsmp.c   |0
 arch/arm/{mach-exynos4 = mach-exynos}/pm.c|0
 arch/arm/{mach-exynos4 = mach-exynos}/pmu.c   |0
 .../arm/{mach-exynos4 = mach-exynos}/setup-fimc.c |0
 .../{mach-exynos4 = mach-exynos}/setup-fimd0.c|0
 .../arm/{mach-exynos4 = mach-exynos}/setup-i2c0.c |0
 .../arm/{mach-exynos4 = mach-exynos}/setup-i2c1.c |0
 .../arm/{mach-exynos4 = mach-exynos}/setup-i2c2.c |0
 .../arm/{mach-exynos4 = mach-exynos}/setup-i2c3.c |0
 .../arm/{mach-exynos4 = mach-exynos}/setup-i2c4.c |0
 .../arm/{mach-exynos4 

RE: [RFC][PATCH] Consolidate Samsung MAINTAINERS

2011-11-04 Thread Kukjin Kim
Heiko Stübner wrote:
 
 Am Sonntag 23 Oktober 2011, 00:12:14 schrieb Heiko Stübner:
  These days most Samsung stuff gets in the kernel through Kukjin Kim.
  This patch changes MAINTAINERS to reflect this.
 
  By adding Kukjin Kim to the maintainers for S3C2410, S3C244x and
  S3C64xx alongside Ben Dooks the extra entries become identical to the
  base ARM/SAMSUNG entry and can move into it.
 
  Also the S3C2416 gets a maintainer through the s3c24* wildcard - as it
  did not have one until now.
 
  Signed-off-by: Heiko Stuebner he...@sntech.de
  ---
 ping?
 
Hi Heiko,

Basically I'm ok on this but need to get the agreement from Ben Dooks.

Thanks.

Best regards,
Kgene.
--
Kukjin Kim kgene@samsung.com, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.

--
To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: [PATCH 5/5] [CPUFREQ] EXYNOS4210: Add support ASV feature

2011-11-04 Thread Kukjin Kim
MyungJoo Ham wrote:
 
 Hello,
 
Hi,

I got the comments from Jaecheol Lee but his mail client has some problem so
I'm sending instead.

 On Wed, Nov 2, 2011 at 9:43 PM, Kukjin Kim kgene@samsung.com wrote:
 []
  +static void __init set_volt_table(void)
  +{
  +       unsigned int tmp, i, asv_group = 0;
  +
  +       tmp = __raw_readl(S5P_INFORM2);
 
 As I've mentioned in the ASV patch thread, do we really need to use an
 INFORM register simply to save the id of supported voltage ranges?
 
 Why aren't we using an extern variable here? For example, extern int
 asv_group_id; and define it at asv.h or somewhere else.
 
 At reboot, we are going to init ASV driver and will get the ASV value
 again; thus, we don't need to use such a preserving register anyway.
 At suspend/resume, the value in RAM does not disappear and the IPL
 does not care this value; thus, it is meaningless to use INFORM2 for
 this value.
 
ASV feature had been implemented in bootloader hence inform register was
used to return the result value to cpufreq driver. If there is no problem to
use the inform register why don't you keep this manner.

(snip)

Thanks.

Best regards,
Kgene.
--
Kukjin Kim kgene@samsung.com, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.

--
To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: [PATCH 4/5] [CPUFREQ] EXYNOS4210: Add DVS lock feature for other driver

2011-11-04 Thread Kukjin Kim
MyungJoo Ham wrote:
 
 On Wed, Nov 2, 2011 at 9:43 PM, Kukjin Kim kgene@samsung.com wrote:
  From: Jongpill Lee boyko@samsung.com
 
  This patch adds DVS lock feature for other driver and pm/
  reboot notifier to enhance stability.
 
(snip)
 
Same, following is from Jaecheol Lee.

 Except for the case of PM (suspend/reset), it appears that this
 feature is something that is meant to be supported by qos
 (linux/pm_qos.h).
 Couldn't we simply use the QoS feature to support locking frequency
 above some specific levels? With QoS, I guess the implementation
 becomes more general and straightforward.
 Although we will probably need to use CPU_DMA_LATENCY for this case,
 I think it isn't awefully difficult to use DMA-Latency as the metric.
 
Our goal is removal of using this cpufreq lock, but now some device driver
which is not fully optimized need to use this lock temporary. If there is no
request of this API from device driver, we will remove this feature or
support this feature with different manner as you mentioned.

 One concern about this is that we are hereby enforcing all the related
 device drivers stuck with Exynos4210 only unless others also use
 cpufreq_lock_ID and its friends.

We recommend this feature in only rare instances (performance issue). After
resolving that problem, the device driver which is using lock should be
modified with removing lock. Actually, there is no device driver that using
lock now.

Thanks.

Best regards,
Kgene.
--
Kukjin Kim kgene@samsung.com, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.

--
To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: [PATCH 1/5] [CPUFREQ] EXYNOS4210: Remove code about bus on cpufreq

2011-11-04 Thread Kukjin Kim
MyungJoo Ham wrote:
 
 On Wed, Nov 2, 2011 at 9:42 PM, Kukjin Kim kgene@samsung.com wrote:
  From: Jongpill Lee boyko@samsung.com
 
  This patch removes code for bus on cpufreq because the code
  for bus frequency changing moves to busfreq driver.
  So code about bus on cpufreq is not necessary.
 
  Signed-off-by: Jongpill Lee boyko@samsung.com
  Signed-off-by: SangWook Ju sw...@samsung.com
  Signed-off-by: Jaecheol Lee jc@samsung.com
  Signed-off-by: Kukjin Kim kgene@samsung.com
  ---
   drivers/cpufreq/exynos4210-cpufreq.c |  174
  +-
   1 files changed, 1 insertions(+), 173 deletions(-)
 
 
 Cool!
 
 Now, it's compatible with the Exynos4210 bus devfreq driver.
 Are you going to upstream the busfreq in the devfreq framework (at
 /drivers/devfreq/) or do you want me to submit the Exynos4210 bus
 devfreq driver that is currently on
 http://git.infradead.org/users/kmpark/linux-2.6-
 samsung/shortlog/refs/heads/devfreq
 (drivers/devfreq/exynos4210_memorybus.c)
 
 Devfreq is a framework to support DVFS feature for non-CPU devices,
 which is at 3.2-next tree.
 
I think, we need to talk about above so would be better to us if we could
have a meeting.

Thanks.

Best regards,
Kgene.
--
Kukjin Kim kgene@samsung.com, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.

--
To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: [PATCH 0/6] SPI platform device consolidation

2011-11-04 Thread Kukjin Kim
Padmavathi Venna wrote:
 
 SPI platform devices are defined in respective machine folder of
 Samsung S3C64XX and S5P series SoCs.This patchset moves S3C64XX
 and S5P series of SPI platform devices to a common place plat-samsung.
 This patchset also creates SPI setup files for GPIO configurations and
 initializes the platform specific data in the corresponding machine file.
 
 Padmavathi Venna (6):
   ARM: SAMSUNG: Consolidation of SPI platform devices to
 plat-samsung
   ARM: S3C64XX: Modified files for SPI consolidation work
   ARM: S5PC100: Modified files for SPI consolidation work.
   ARM: S5P64X0: Modified files for SPI consolidation work
   ARM: S5PV210: Modified files for SPI consolidation work
 
 The following patch make the corresponding SPI changes required for
 Wolfson Cragganmore S3C6410 variant. This patch is only build tested.
 
   ARM: S3C64XX: Modified according to SPI consolidation work.
 
  arch/arm/mach-s3c64xx/Kconfig|8 +-
  arch/arm/mach-s3c64xx/Makefile   |2 +-
  arch/arm/mach-s3c64xx/dev-spi.c  |  172 -
  arch/arm/mach-s3c64xx/include/mach/map.h |2 +
  arch/arm/mach-s3c64xx/mach-crag6410.c|9 +
  arch/arm/mach-s3c64xx/mach-smdk6410.c|   19 ++
  arch/arm/mach-s3c64xx/setup-spi.c|   32 +++
  arch/arm/mach-s5p64x0/Kconfig|7 +-
  arch/arm/mach-s5p64x0/Makefile   |2 +-
  arch/arm/mach-s5p64x0/dev-spi.c  |  218
-
  arch/arm/mach-s5p64x0/include/mach/map.h |3 +
  arch/arm/mach-s5p64x0/mach-smdk6440.c|   19 ++
  arch/arm/mach-s5p64x0/mach-smdk6450.c|   19 ++
  arch/arm/mach-s5p64x0/setup-spi.c|   42 
  arch/arm/mach-s5pc100/Kconfig|5 +
  arch/arm/mach-s5pc100/Makefile   |2 +-
  arch/arm/mach-s5pc100/dev-spi.c  |  220
--
  arch/arm/mach-s5pc100/include/mach/map.h |3 +
  arch/arm/mach-s5pc100/mach-smdkc100.c|   31 +++
  arch/arm/mach-s5pc100/setup-spi.c|   43 +
  arch/arm/mach-s5pv210/Kconfig|5 +
  arch/arm/mach-s5pv210/Makefile   |2 +-
  arch/arm/mach-s5pv210/dev-spi.c  |  169 -
  arch/arm/mach-s5pv210/include/mach/map.h |2 +
  arch/arm/mach-s5pv210/mach-smdkv210.c|   21 ++
  arch/arm/mach-s5pv210/setup-spi.c|   36 
  arch/arm/plat-samsung/Kconfig|   14 ++-
  arch/arm/plat-samsung/devs.c |  112 +++
  arch/arm/plat-samsung/include/plat/devs.h|8 +-
  arch/arm/plat-samsung/include/plat/s3c64xx-spi.h |   16 +-
  30 files changed, 444 insertions(+), 799 deletions(-)
  delete mode 100644 arch/arm/mach-s3c64xx/dev-spi.c
  create mode 100644 arch/arm/mach-s3c64xx/setup-spi.c
  delete mode 100644 arch/arm/mach-s5p64x0/dev-spi.c
  create mode 100644 arch/arm/mach-s5p64x0/setup-spi.c
  delete mode 100644 arch/arm/mach-s5pc100/dev-spi.c
  create mode 100644 arch/arm/mach-s5pc100/setup-spi.c
  delete mode 100644 arch/arm/mach-s5pv210/dev-spi.c
  create mode 100644 arch/arm/mach-s5pv210/setup-spi.c

Looks good to consolidate work, but it's merge window so will be back on
this after that.

Thanks.

Best regards,
Kgene.
--
Kukjin Kim kgene@samsung.com, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.

--
To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: [PATCH] ARM: EXYNOS4: Add SPI support

2011-11-04 Thread Kukjin Kim
Padmavathi Venna wrote:
 
 Add SPI setup files for GPIO configurations.
 Add SPI clkdev support.
 Initialize SPI platform specific code in the machine file.
 
 Signed-off-by: Padmavathi Venna padm...@samsung.com
 ---
  arch/arm/mach-exynos4/Kconfig   |5 ++
  arch/arm/mach-exynos4/Makefile  |1 +
  arch/arm/mach-exynos4/clock.c   |   72 +-
 
  arch/arm/mach-exynos4/include/mach/irqs.h   |3 +
  arch/arm/mach-exynos4/include/mach/map.h|6 ++
  arch/arm/mach-exynos4/include/mach/spi-clocks.h |   16 +
  arch/arm/mach-exynos4/mach-smdkv310.c   |   35 +++
  arch/arm/mach-exynos4/setup-spi.c   |   47 +++
  8 files changed, 155 insertions(+), 30 deletions(-)
  create mode 100644 arch/arm/mach-exynos4/include/mach/spi-clocks.h
  create mode 100644 arch/arm/mach-exynos4/setup-spi.c
 
The mach-exynos4 directory will be re-organized in this merge window. So
maybe you need to wait for v3.2-rc1.

And I will be on this after that :)

Thanks.

Best regards,
Kgene.
--
Kukjin Kim kgene@samsung.com, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.

--
To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: [PATCH 0/3] ARM: S5P64X0: Add SDMMC support

2011-11-04 Thread Kukjin Kim
Rajeshwari Shinde wrote:
 
 This patchset adds support for sdhci controller on S5P6440 and S5P6450.
 
 Since this patchset is based on mmc: sdhci-s3c: Rework platform data
 and add device tree support clk_type member has been removed from
 platform data.
 
 This patchset depends on the patchs:
 ARM: S5P64X0: Modified files for SPI consolidation work.
 mmc: sdhci-s3c: Rework platform data and add device tree support.
 
 Rajeshwari Shinde (3):
   ARM: S5P64X0: Add HSMMC setup for host Controller
   ARM: S5P64X0: Add lookup of sdhci-s3c clocks using generic names
   ARM: S5P64X0: Enable SDHCI support
 
  arch/arm/mach-s5p64x0/Kconfig  |   24 +++
  arch/arm/mach-s5p64x0/Makefile |1 +
  arch/arm/mach-s5p64x0/clock-s5p6440.c  |   72 +++
  arch/arm/mach-s5p64x0/clock-s5p6450.c  |   72 +++
  arch/arm/mach-s5p64x0/cpu.c|9 +++
  arch/arm/mach-s5p64x0/mach-smdk6440.c  |   25 +++
  arch/arm/mach-s5p64x0/mach-smdk6450.c  |   26 +++-
  arch/arm/mach-s5p64x0/setup-sdhci-gpio.c   |  104
 
  arch/arm/plat-samsung/include/plat/sdhci.h |   42 +++
  9 files changed, 314 insertions(+), 61 deletions(-)
  create mode 100644 arch/arm/mach-s5p64x0/setup-sdhci-gpio.c
 
 --
 1.7.4.4

Hi Rajeshwari,

I need to sort out your this patches and Thomas' sdhci dt patches.
And it's merge window, so will be back on this after that.

Thanks.

Best regards,
Kgene.
--
Kukjin Kim kgene@samsung.com, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.

--
To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html