Re: [PATCH V9 0/2] HS200 Mode support for device and host

2012-01-08 Thread Chris Ball
Hi Girish,

On Thu, Jan 05 2012, Girish K S wrote:
 Girish K S (2):
   mmc: core: HS200 mode support for eMMC 4.5
   mmc: host: Adds support for eMMC 4.5 HS200 mode

Thanks, pushed to mmc-next with the following corrections to 2/2:

diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
index 4be50ea..64febf2 100644
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
@@ -1014,8 +1014,8 @@ static void sdhci_send_command(struct sdhci_host *host, 
struct mmc_command *cmd)
flags |= SDHCI_CMD_INDEX;
 
/* CMD19 is special in that the Data Present Select should be set */
-   if (cmd-data || (cmd-opcode == MMC_SEND_TUNING_BLOCK) ||
-   (cmd-opcode == MMC_SEND_TUNING_BLOCK_HS200))
+   if (cmd-data || cmd-opcode == MMC_SEND_TUNING_BLOCK ||
+   cmd-opcode == MMC_SEND_TUNING_BLOCK_HS200)
flags |= SDHCI_CMD_DATA;
 
sdhci_writew(host, SDHCI_MAKE_CMD(cmd-opcode, flags), SDHCI_COMMAND);
@@ -1710,10 +1710,10 @@ static int sdhci_execute_tuning(struct mmc_host *mmc, 
u32 opcode)
 * If the Host Controller supports the HS200 mode then tuning
 * function has to be executed.
 */
-   if (((ctrl  SDHCI_CTRL_UHS_MASK) == SDHCI_CTRL_UHS_SDR104) ||
-   (((ctrl  SDHCI_CTRL_UHS_MASK) == SDHCI_CTRL_UHS_SDR50) 
-   (host-flags  SDHCI_SDR50_NEEDS_TUNING)) ||
-   (host-flags  SDHCI_HS200_NEEDS_TUNING))
+   if ((ctrl  SDHCI_CTRL_UHS_MASK == SDHCI_CTRL_UHS_SDR104) ||
+   ((ctrl  SDHCI_CTRL_UHS_MASK == SDHCI_CTRL_UHS_SDR50) 
+host-flags  SDHCI_SDR50_NEEDS_TUNING ||
+host-flags  SDHCI_HS200_NEEDS_TUNING))
ctrl |= SDHCI_CTRL_EXEC_TUNING;
else {
spin_unlock(host-lock);
@@ -2163,8 +2163,8 @@ static void sdhci_data_irq(struct sdhci_host *host, u32 
intmask)
/* CMD19 generates _only_ Buffer Read Ready interrupt */
if (intmask  SDHCI_INT_DATA_AVAIL) {
command = SDHCI_GET_CMD(sdhci_readw(host, SDHCI_COMMAND));
-   if ((command == MMC_SEND_TUNING_BLOCK) ||
-   (command == MMC_SEND_TUNING_BLOCK_HS200)) {
+   if (command == MMC_SEND_TUNING_BLOCK) ||
+   command == MMC_SEND_TUNING_BLOCK_HS200) {
host-tuning_done = 1;
wake_up(host-buf_ready_int);
return;
@@ -2765,11 +2765,11 @@ int sdhci_add_host(struct sdhci_host *host)
if (caps[1]  SDHCI_SUPPORT_DDR50)
mmc-caps |= MMC_CAP_UHS_DDR50;
 
-   /* Does the host needs tuning for SDR50? */
+   /* Does the host need tuning for SDR50? */
if (caps[1]  SDHCI_USE_SDR50_TUNING)
host-flags |= SDHCI_SDR50_NEEDS_TUNING;
 
-   /* Does the host needs tuning for HS200? */
+   /* Does the host need tuning for HS200? */
if (mmc-caps2  MMC_CAP2_HS200)
host-flags |= SDHCI_HS200_NEEDS_TUNING;
 
diff --git a/drivers/mmc/host/sdhci.h b/drivers/mmc/host/sdhci.h
index 46fd2ac..ad265b9 100644
--- a/drivers/mmc/host/sdhci.h
+++ b/drivers/mmc/host/sdhci.h
@@ -158,7 +158,7 @@
 #define   SDHCI_CTRL_UHS_SDR50 0x0002
 #define   SDHCI_CTRL_UHS_SDR1040x0003
 #define   SDHCI_CTRL_UHS_DDR50 0x0004
-#define   SDHCI_CTRL_HS_SDR200 0x0005 /*reserved value in SDIO spec */
+#define   SDHCI_CTRL_HS_SDR200 0x0005 /* reserved value in SDIO spec */
 #define  SDHCI_CTRL_VDD_1800x0008
 #define  SDHCI_CTRL_DRV_TYPE_MASK  0x0030
 #define   SDHCI_CTRL_DRV_TYPE_B0x

-- 
Chris Ball   c...@laptop.org   http://printf.net/
One Laptop Per Child
--
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 V9 2/2] mmc: host: Adds support for eMMC 4.5 HS200 mode

2012-01-08 Thread Chris Ball
Hi,

On Thu, Jan 05 2012, Girish K S wrote:
 @@ -1703,10 +1707,13 @@ static int sdhci_execute_tuning(struct mmc_host *mmc)
* Host Controller needs tuning only in case of SDR104 mode
* and for SDR50 mode when Use Tuning for SDR50 is set in
* Capabilities register.
 +  * If the Host Controller supports the HS200 mode then tuning
 +  * function has to be executed.
*/
   if (((ctrl  SDHCI_CTRL_UHS_MASK) == SDHCI_CTRL_UHS_SDR104) ||
   (((ctrl  SDHCI_CTRL_UHS_MASK) == SDHCI_CTRL_UHS_SDR50) 
 - (host-flags  SDHCI_SDR50_NEEDS_TUNING)))
 + (host-flags  SDHCI_SDR50_NEEDS_TUNING)) ||
 + (host-flags  SDHCI_HS200_NEEDS_TUNING))
   ctrl |= SDHCI_CTRL_EXEC_TUNING;
   else {
   spin_unlock(host-lock);

Actually, this generates a warning:

/home/cjb/git/mmc/drivers/mmc/host/sdhci.c: In function ‘sdhci_execute_tuning’:
/home/cjb/git/mmc/drivers/mmc/host/sdhci.c:1716:7: warning: suggest parentheses 
around ‘’ within ‘||’ [-Wparentheses]

.. as well as being hard to follow.  Shall we split it up as below instead?

diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
index 64febf2..5627354 100644
--- a/drivers/mmc/host/sdhci.c
+++ b/drivers/mmc/host/sdhci.c
@@ -1694,6 +1694,7 @@ static int sdhci_execute_tuning(struct mmc_host *mmc, u32 
opcode)
int tuning_loop_counter = MAX_TUNING_LOOP;
unsigned long timeout;
int err = 0;
+   bool requires_tuning_nonuhs;
 
host = mmc_priv(mmc);
 
@@ -1704,16 +1705,19 @@ static int sdhci_execute_tuning(struct mmc_host *mmc, 
u32 opcode)
ctrl = sdhci_readw(host, SDHCI_HOST_CONTROL2);
 
/*
-* Host Controller needs tuning only in case of SDR104 mode
-* and for SDR50 mode when Use Tuning for SDR50 is set in
+* The Host Controller needs tuning only in case of SDR104 mode
+* and for SDR50 mode when Use Tuning for SDR50 is set in the
 * Capabilities register.
-* If the Host Controller supports the HS200 mode then tuning
-* function has to be executed.
+* If the Host Controller supports the HS200 mode then the
+* tuning function has to be executed.
 */
-   if ((ctrl  SDHCI_CTRL_UHS_MASK == SDHCI_CTRL_UHS_SDR104) ||
-   ((ctrl  SDHCI_CTRL_UHS_MASK == SDHCI_CTRL_UHS_SDR50) 
-host-flags  SDHCI_SDR50_NEEDS_TUNING ||
+   if (((ctrl  SDHCI_CTRL_UHS_MASK) == SDHCI_CTRL_UHS_SDR50) 
+   (host-flags  SDHCI_SDR50_NEEDS_TUNING ||
 host-flags  SDHCI_HS200_NEEDS_TUNING))
+   requires_tuning_nonuhs = true;
+
+   if (((ctrl  SDHCI_CTRL_UHS_MASK) == SDHCI_CTRL_UHS_SDR104) ||
+   requires_tuning_nonuhs)
ctrl |= SDHCI_CTRL_EXEC_TUNING;
else {
spin_unlock(host-lock);

-- 
Chris Ball   c...@laptop.org   http://printf.net/
One Laptop Per Child
--
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 for v3.3

2012-01-08 Thread Mark Brown
On Fri, Jan 06, 2012 at 01:58:29PM -0800, Olof Johansson wrote:

  Please pull Samsung devel for v3.3 from:
  ?git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung.git
  next-samsung-devel-samsung

 Thanks. I've pulled this into late/devel, based on earlier email from
 Arnd we might end up sending this in towards the end of the merge
 window, but there's also a chance it will wait for 3.4.

That'd be extremely disappointing, especially given that there's some
bug fixes in there for updates going in this merge window without which
mainline is going to have problems on s3c64xx (mostly the GPIO stuff).
--
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] s3c-hsudc powerdomain using generic power domains

2012-01-08 Thread Heiko Stübner
The S3C2443/S3C2416/S3C2450 contain a power domain for the usb phy.
Up until now the s3c-hsudc was writing directly to the PWRCFG register
in the (un)init_phy functions to control it.

This patchset introduces a power domain for the usbphy and hooks the
hsudc-device to it. The new runtime_pm calls then handle the enabling
and disabling of the power domain on udc start and stop.

As a result another arch dependency is gone from the driver.

This set applies cleanly to linux-next from 2012-01-06 and is
tested on S3C2416 hardware.

Heiko Stuebner (3):
  s3c-hsudc: Use helper functions instead of generic container_of
  s3c-hsudc: add basic runtime_pm calls
  S3C2443: add power domain for usb phy

 arch/arm/mach-s3c2416/Kconfig |1 +
 arch/arm/mach-s3c2443/Kconfig |1 +
 arch/arm/plat-s3c24xx/Kconfig |7 +++
 arch/arm/plat-s3c24xx/Makefile|1 +
 arch/arm/plat-s3c24xx/s3c2443-pm-common.c |   65 +
 drivers/usb/gadget/s3c-hsudc.c|   25 ++-
 6 files changed, 89 insertions(+), 11 deletions(-)
 create mode 100644 arch/arm/plat-s3c24xx/s3c2443-pm-common.c

-- 
1.7.2.3

--
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] s3c-hsudc: Use helper functions instead of generic container_of

2012-01-08 Thread Heiko Stübner
The helper functions were definied but never used until now.

Signed-off-by: Heiko Stuebner he...@sntech.de
---
 drivers/usb/gadget/s3c-hsudc.c |   10 +-
 1 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/usb/gadget/s3c-hsudc.c b/drivers/usb/gadget/s3c-hsudc.c
index df8661d..41b3a58 100644
--- a/drivers/usb/gadget/s3c-hsudc.c
+++ b/drivers/usb/gadget/s3c-hsudc.c
@@ -759,7 +759,7 @@ static int s3c_hsudc_ep_enable(struct usb_ep *_ep,
unsigned long flags;
u32 ecr = 0;
 
-   hsep = container_of(_ep, struct s3c_hsudc_ep, ep);
+   hsep = our_ep(_ep);
if (!_ep || !desc || hsep-desc || _ep-name == ep0name
|| desc-bDescriptorType != USB_DT_ENDPOINT
|| hsep-bEndpointAddress != desc-bEndpointAddress
@@ -853,7 +853,7 @@ static void s3c_hsudc_free_request(struct usb_ep *ep, 
struct usb_request *_req)
 {
struct s3c_hsudc_req *hsreq;
 
-   hsreq = container_of(_req, struct s3c_hsudc_req, req);
+   hsreq = our_req(_req);
WARN_ON(!list_empty(hsreq-queue));
kfree(hsreq);
 }
@@ -876,12 +876,12 @@ static int s3c_hsudc_queue(struct usb_ep *_ep, struct 
usb_request *_req,
u32 offset;
u32 csr;
 
-   hsreq = container_of(_req, struct s3c_hsudc_req, req);
+   hsreq = our_req(_req);
if ((!_req || !_req-complete || !_req-buf ||
!list_empty(hsreq-queue)))
return -EINVAL;
 
-   hsep = container_of(_ep, struct s3c_hsudc_ep, ep);
+   hsep = our_ep(_ep);
hsudc = hsep-dev;
if (!hsudc-driver || hsudc-gadget.speed == USB_SPEED_UNKNOWN)
return -ESHUTDOWN;
@@ -935,7 +935,7 @@ static int s3c_hsudc_dequeue(struct usb_ep *_ep, struct 
usb_request *_req)
struct s3c_hsudc_req *hsreq;
unsigned long flags;
 
-   hsep = container_of(_ep, struct s3c_hsudc_ep, ep);
+   hsep = our_ep(_ep);
if (!_ep || hsep-ep.name == ep0name)
return -EINVAL;
 
-- 
1.7.2.3

--
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] s3c-hsudc: add basic runtime_pm calls

2012-01-08 Thread Heiko Stübner
This will enable the system to check for activity of the usb gadget
and also in a later patch to control the usbphy power-domain.
When handling the power domain there, it will be possible to remove
another reference to architecture code.

Signed-off-by: Heiko Stuebner he...@sntech.de
---
 drivers/usb/gadget/s3c-hsudc.c |9 +
 1 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/drivers/usb/gadget/s3c-hsudc.c b/drivers/usb/gadget/s3c-hsudc.c
index 41b3a58..5e87293 100644
--- a/drivers/usb/gadget/s3c-hsudc.c
+++ b/drivers/usb/gadget/s3c-hsudc.c
@@ -30,6 +30,7 @@
 #include linux/prefetch.h
 #include linux/platform_data/s3c-hsudc.h
 #include linux/regulator/consumer.h
+#include linux/pm_runtime.h
 
 #include mach/regs-s3c2443-clock.h
 
@@ -1178,6 +1179,9 @@ static int s3c_hsudc_start(struct usb_gadget *gadget,
dev_info(hsudc-dev, bound driver %s\n, driver-driver.name);
 
s3c_hsudc_reconfig(hsudc);
+
+   pm_runtime_get_sync(hsudc-dev);
+
s3c_hsudc_init_phy();
if (hsudc-pd-gpio_init)
hsudc-pd-gpio_init();
@@ -1208,6 +1212,9 @@ static int s3c_hsudc_stop(struct usb_gadget *gadget,
hsudc-gadget.dev.driver = NULL;
hsudc-gadget.speed = USB_SPEED_UNKNOWN;
s3c_hsudc_uninit_phy();
+
+   pm_runtime_put(hsudc-dev);
+
if (hsudc-pd-gpio_uninit)
hsudc-pd-gpio_uninit();
s3c_hsudc_stop_activity(hsudc);
@@ -1362,6 +1369,8 @@ static int __devinit s3c_hsudc_probe(struct 
platform_device *pdev)
if (ret)
goto err_add_udc;
 
+   pm_runtime_enable(dev);
+
return 0;
 err_add_udc:
device_unregister(hsudc-gadget.dev);
-- 
1.7.2.3

--
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/3] S3C2443: add power domain for usb phy

2012-01-08 Thread Heiko Stübner
The phy-power-handling is common to S3C2443/2416/2450, so introduce a
s3c2443-pm-common.c to handle this for all of them.

This makes it possible to remove the raw write to the PWRCFG-register
from the s3c-hsudc driver.

Signed-off-by: Heiko Stuebner he...@sntech.de
---
 arch/arm/mach-s3c2416/Kconfig |1 +
 arch/arm/mach-s3c2443/Kconfig |1 +
 arch/arm/plat-s3c24xx/Kconfig |7 +++
 arch/arm/plat-s3c24xx/Makefile|1 +
 arch/arm/plat-s3c24xx/s3c2443-pm-common.c |   65 +
 drivers/usb/gadget/s3c-hsudc.c|6 ---
 6 files changed, 75 insertions(+), 6 deletions(-)
 create mode 100644 arch/arm/plat-s3c24xx/s3c2443-pm-common.c

diff --git a/arch/arm/mach-s3c2416/Kconfig b/arch/arm/mach-s3c2416/Kconfig
index 84c7b03..240aef7 100644
--- a/arch/arm/mach-s3c2416/Kconfig
+++ b/arch/arm/mach-s3c2416/Kconfig
@@ -15,6 +15,7 @@ config CPU_S3C2416
select CPU_LLSERIAL_S3C2440
select SAMSUNG_CLKSRC
select S3C2443_CLOCK
+   select S3C2443_PM_COMMON
help
  Support for the S3C2416 SoC from the S3C24XX line
 
diff --git a/arch/arm/mach-s3c2443/Kconfig b/arch/arm/mach-s3c2443/Kconfig
index 8814031..3bff23f 100644
--- a/arch/arm/mach-s3c2443/Kconfig
+++ b/arch/arm/mach-s3c2443/Kconfig
@@ -10,6 +10,7 @@ config CPU_S3C2443
select CPU_LLSERIAL_S3C2440
select SAMSUNG_CLKSRC
select S3C2443_CLOCK
+   select S3C2443_PM_COMMON
help
  Support for the S3C2443 SoC from the S3C24XX line
 
diff --git a/arch/arm/plat-s3c24xx/Kconfig b/arch/arm/plat-s3c24xx/Kconfig
index d8973ac..0a9f37c 100644
--- a/arch/arm/plat-s3c24xx/Kconfig
+++ b/arch/arm/plat-s3c24xx/Kconfig
@@ -50,6 +50,13 @@ config S3C2443_CLOCK
  Clock code for the S3C2443 and similar processors, which includes
  the S3C2416 and S3C2450.
 
+config S3C2443_PM_COMMON
+   bool
+   select PM_GENERIC_DOMAINS
+   help
+ Common power management code for the S3C2443 and similar processors,
+ which include the S3C2416 and S3C2450.
+
 config S3C24XX_DCLK
bool
help
diff --git a/arch/arm/plat-s3c24xx/Makefile b/arch/arm/plat-s3c24xx/Makefile
index b2b0112..300f77c 100644
--- a/arch/arm/plat-s3c24xx/Makefile
+++ b/arch/arm/plat-s3c24xx/Makefile
@@ -29,6 +29,7 @@ obj-$(CONFIG_PM)  += irq-pm.o
 obj-$(CONFIG_PM)   += sleep.o
 obj-$(CONFIG_S3C2410_CLOCK)+= s3c2410-clock.o
 obj-$(CONFIG_S3C2443_CLOCK)+= s3c2443-clock.o
+obj-$(CONFIG_S3C2443_PM_COMMON)+= s3c2443-pm-common.o
 obj-$(CONFIG_S3C2410_DMA)  += dma.o
 obj-$(CONFIG_S3C2410_IOTIMING) += s3c2410-iotiming.o
 obj-$(CONFIG_S3C2412_IOTIMING) += s3c2412-iotiming.o
diff --git a/arch/arm/plat-s3c24xx/s3c2443-pm-common.c 
b/arch/arm/plat-s3c24xx/s3c2443-pm-common.c
new file mode 100644
index 000..b9aaf9a
--- /dev/null
+++ b/arch/arm/plat-s3c24xx/s3c2443-pm-common.c
@@ -0,0 +1,65 @@
+/*
+ * S3C2443,S3C2416,S3C2450 Power management support
+ *
+ * Copyright (c) 2011 Heiko Stuebner he...@sntech.de
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+*/
+
+#include linux/io.h
+#include linux/pm_domain.h
+
+#include mach/regs-s3c2443-clock.h
+#include plat/devs.h
+
+
+static int s3c2443_usbphy_off(struct generic_pm_domain *domain)
+{
+   u32 val;
+
+   val = __raw_readl(S3C2443_PWRCFG);
+   val = ~(S3C2443_PWRCFG_USBPHY);
+   __raw_writel(val, S3C2443_PWRCFG);
+
+   return 0;
+}
+
+static int s3c2443_usbphy_on(struct generic_pm_domain *domain)
+{
+   u32 val;
+
+   val = __raw_readl(S3C2443_PWRCFG);
+   val |= S3C2443_PWRCFG_USBPHY;
+   __raw_writel(val, S3C2443_PWRCFG);
+
+   return 0;
+}
+
+static struct generic_pm_domain s3c2443_usbphy_pd = {
+   .power_off = s3c2443_usbphy_off,
+   .power_on = s3c2443_usbphy_on,
+};
+
+static int __init s3c2443_pm_common_init(void)
+{
+   pm_genpd_init(s3c2443_usbphy_pd, NULL, false);
+   pm_genpd_add_device(s3c2443_usbphy_pd, s3c_device_usb_hsudc.dev);
+
+   return 0;
+}
+arch_initcall(s3c2443_pm_common_init);
+
+static __init int s3c2443_pm_common_late_initcall(void)
+{
+   pm_genpd_poweroff_unused();
+   return 0;
+}
+late_initcall(s3c2443_pm_common_late_initcall);
diff --git a/drivers/usb/gadget/s3c-hsudc.c b/drivers/usb/gadget/s3c-hsudc.c
index 5e87293..9a81ad3 100644
--- a/drivers/usb/gadget/s3c-hsudc.c
+++ b/drivers/usb/gadget/s3c-hsudc.c
@@ -195,9 +195,6 @@ static void s3c_hsudc_init_phy(void)
 {

Re: [PATCH v2 1/2] PM / Domains: Add OF support

2012-01-08 Thread Rafael J. Wysocki
On Saturday, January 07, 2012, Thomas Abraham wrote:
 A device node pointer is added to generic pm domain structure to associate
 the domain with a node in the device tree. The platform code parses the
 device tree to find available nodes representing the generic power domain,
 instantiates the available domains and initializes them by calling
 pm_genpd_init().
 
 Nodes representing the devices include a phandle of the power domain to
 which it belongs. As these devices get instantiated, the driver code
 checkes for availability of a power domain phandle, converts the phandle
 to a device node and uses the new pm_genpd_of_add_device() api to
 associate the device with a power domain.
 
 pm_genpd_of_add_device() runs through its list of registered power domains
 and matches the OF node of the domain with the one specified as the
 parameter. If a match is found, the device is associated with the matched
 domain.
 
 Cc: Rafael J. Wysocki r...@sisk.pl
 Cc: Rob Herring rob.herr...@calxeda.com
 Cc: Grant Likely grant.lik...@secretlab.ca
 Signed-off-by: Thomas Abraham thomas.abra...@linaro.org

I can take this patch for 3.4, but your [2/2] depends on it, so I'm not
sure how to handle that.  If you want me to take the other patch too,
it'll need ACKs from the Exynos maintaniers.

Thanks,
Rafael


 ---
  drivers/base/power/domain.c |   32 
  include/linux/pm_domain.h   |   12 
  2 files changed, 44 insertions(+), 0 deletions(-)
 
 diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c
 index 92e6a90..9ee1f7b 100644
 --- a/drivers/base/power/domain.c
 +++ b/drivers/base/power/domain.c
 @@ -1171,6 +1171,38 @@ int __pm_genpd_add_device(struct generic_pm_domain 
 *genpd, struct device *dev,
  }
  
  /**
 + * __pm_genpd_of_add_device - Add a device to an I/O PM domain.
 + * @genpd_node: Device tree node pointer representing a PM domain to which 
 the
 + *   the device is added to.
 + * @dev: Device to be added.
 + * @td: Set of PM QoS timing parameters to attach to the device.
 + */
 +int __pm_genpd_of_add_device(struct device_node *genpd_node, struct device 
 *dev,
 +  struct gpd_timing_data *td)
 +{
 + struct generic_pm_domain *genpd = NULL, *gpd;
 +
 + dev_dbg(dev, %s()\n, __func__);
 +
 + if (IS_ERR_OR_NULL(genpd_node) || IS_ERR_OR_NULL(dev))
 + return -EINVAL;
 +
 + mutex_lock(gpd_list_lock);
 + list_for_each_entry(gpd, gpd_list, gpd_list_node) {
 + if (gpd-of_node == genpd_node) {
 + genpd = gpd;
 + break;
 + }
 + }
 + mutex_unlock(gpd_list_lock);
 +
 + if (!genpd)
 + return -EINVAL;
 +
 + return __pm_genpd_add_device(genpd, dev, td);
 +}
 +
 +/**
   * pm_genpd_remove_device - Remove a device from an I/O PM domain.
   * @genpd: PM domain to remove the device from.
   * @dev: Device to be removed.
 diff --git a/include/linux/pm_domain.h b/include/linux/pm_domain.h
 index a03a0ad..e3ff875 100644
 --- a/include/linux/pm_domain.h
 +++ b/include/linux/pm_domain.h
 @@ -11,6 +11,7 @@
  
  #include linux/device.h
  #include linux/err.h
 +#include linux/of.h
  
  enum gpd_status {
   GPD_STATE_ACTIVE = 0,   /* PM domain is active */
 @@ -70,6 +71,7 @@ struct generic_pm_domain {
   s64 break_even_ns;  /* Power break even for the entire domain. */
   s64 max_off_time_ns;/* Maximum allowed suspended time. */
   ktime_t power_off_time;
 + struct device_node *of_node; /* Node in device tree */
  };
  
  static inline struct generic_pm_domain *pd_to_genpd(struct dev_pm_domain *pd)
 @@ -117,12 +119,22 @@ extern int __pm_genpd_add_device(struct 
 generic_pm_domain *genpd,
struct device *dev,
struct gpd_timing_data *td);
  
 +extern int __pm_genpd_of_add_device(struct device_node *genpd_node,
 + struct device *dev,
 + struct gpd_timing_data *td);
 +
  static inline int pm_genpd_add_device(struct generic_pm_domain *genpd,
 struct device *dev)
  {
   return __pm_genpd_add_device(genpd, dev, NULL);
  }
  
 +static inline int pm_genpd_of_add_device(struct device_node *genpd_node,
 +  struct device *dev)
 +{
 + return __pm_genpd_of_add_device(genpd_node, dev, NULL);
 +}
 +
  extern int pm_genpd_remove_device(struct generic_pm_domain *genpd,
 struct device *dev);
  extern int pm_genpd_add_subdomain(struct generic_pm_domain *genpd,
 

--
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/2] S3C24XX: remove some spi left overs

2012-01-08 Thread Heiko Stübner
This series removes unused setup-code of the s3c24xx spi driver.

It has no current in kernel users and also no development activity trying
to change this. I also checked the upstream git of the only board including
the spi.h file (the gta02 at http://git.openmoko.org). The setup calls
are also not used there.

I recall a thread some time back talking about removing the spi-s3c24xx
driver altogether, but as current linux-next still carries the driver
I'm not sure what became of it. So this series does the next smaller thing.


Heiko Stuebner (2):
  S3C24XX: remove unused spi gpio setup functions
  S3C24XX: move spi-s3c24xx platdata out of mach

 arch/arm/mach-s3c2410/include/mach/spi.h |   38 --
 arch/arm/mach-s3c2440/mach-gta02.c   |2 +-
 arch/arm/plat-s3c24xx/Kconfig|   20 -
 arch/arm/plat-s3c24xx/Makefile   |6 
 arch/arm/plat-s3c24xx/spi-bus0-gpe11_12_13.c |   36 
 arch/arm/plat-s3c24xx/spi-bus1-gpd8_9_10.c   |   38 --
 arch/arm/plat-s3c24xx/spi-bus1-gpg5_6_7.c|   36 
 drivers/spi/spi-s3c24xx.c|2 +-
 8 files changed, 2 insertions(+), 176 deletions(-)
 delete mode 100644 arch/arm/mach-s3c2410/include/mach/spi.h
 delete mode 100644 arch/arm/plat-s3c24xx/spi-bus0-gpe11_12_13.c
 delete mode 100644 arch/arm/plat-s3c24xx/spi-bus1-gpd8_9_10.c
 delete mode 100644 arch/arm/plat-s3c24xx/spi-bus1-gpg5_6_7.c

-- 
1.7.2.3

--
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/2] S3C24XX: remove unused spi gpio setup functions

2012-01-08 Thread Heiko Stübner
A grep through the kernel source revealed that neither the
config-options nor the defined functions are used anywhere
in the kernel.

There was also no activity in this regard through the last kernel
releases, so it seems this situation will not change in the future.

Therefore this patch removes this seemingly dead code.

Signed-off-by: Heiko Stuebner he...@sntech.de
---
 arch/arm/mach-s3c2410/include/mach/spi.h |   11 ---
 arch/arm/plat-s3c24xx/Kconfig|   20 -
 arch/arm/plat-s3c24xx/Makefile   |6 
 arch/arm/plat-s3c24xx/spi-bus0-gpe11_12_13.c |   36 
 arch/arm/plat-s3c24xx/spi-bus1-gpd8_9_10.c   |   38 --
 arch/arm/plat-s3c24xx/spi-bus1-gpg5_6_7.c|   36 
 6 files changed, 0 insertions(+), 147 deletions(-)
 delete mode 100644 arch/arm/plat-s3c24xx/spi-bus0-gpe11_12_13.c
 delete mode 100644 arch/arm/plat-s3c24xx/spi-bus1-gpd8_9_10.c
 delete mode 100644 arch/arm/plat-s3c24xx/spi-bus1-gpg5_6_7.c

diff --git a/arch/arm/mach-s3c2410/include/mach/spi.h 
b/arch/arm/mach-s3c2410/include/mach/spi.h
index 4d95883..2a686c0 100644
--- a/arch/arm/mach-s3c2410/include/mach/spi.h
+++ b/arch/arm/mach-s3c2410/include/mach/spi.h
@@ -24,15 +24,4 @@ struct s3c2410_spi_info {
void (*set_cs)(struct s3c2410_spi_info *spi, int cs, int pol);
 };
 
-/* Standard setup / suspend routines for SPI GPIO pins. */
-
-extern void s3c24xx_spi_gpiocfg_bus0_gpe11_12_13(struct s3c2410_spi_info *spi,
-int enable);
-
-extern void s3c24xx_spi_gpiocfg_bus1_gpg5_6_7(struct s3c2410_spi_info *spi,
- int enable);
-
-extern void s3c24xx_spi_gpiocfg_bus1_gpd8_9_10(struct s3c2410_spi_info *spi,
-  int enable);
-
 #endif /* __ASM_ARCH_SPI_H */
diff --git a/arch/arm/plat-s3c24xx/Kconfig b/arch/arm/plat-s3c24xx/Kconfig
index d8973ac..6b1d918 100644
--- a/arch/arm/plat-s3c24xx/Kconfig
+++ b/arch/arm/plat-s3c24xx/Kconfig
@@ -98,26 +98,6 @@ config S3C2410_DMA_DEBUG
  Enable debugging output for the DMA code. This option sends info
  to the kernel log, at priority KERN_DEBUG.
 
-# SPI default pin configuration code
-
-config S3C24XX_SPI_BUS0_GPE11_GPE12_GPE13
-   bool
-   help
- SPI GPIO configuration code for BUS0 when connected to
- GPE11, GPE12 and GPE13.
-
-config S3C24XX_SPI_BUS1_GPG5_GPG6_GPG7
-   bool
-   help
- SPI GPIO configuration code for BUS 1 when connected to
- GPG5, GPG6 and GPG7.
-
-config S3C24XX_SPI_BUS1_GPD8_GPD9_GPD10
-   bool
-   help
- SPI GPIO configuration code for BUS 1 when connected to
- GPD8, GPD9 and GPD10.
-
 # common code for s3c24xx based machines, such as the SMDKs.
 
 # cpu frequency items common between s3c2410 and s3c2440/s3c2442
diff --git a/arch/arm/plat-s3c24xx/Makefile b/arch/arm/plat-s3c24xx/Makefile
index 419d622..d07f67c 100644
--- a/arch/arm/plat-s3c24xx/Makefile
+++ b/arch/arm/plat-s3c24xx/Makefile
@@ -37,12 +37,6 @@ obj-$(CONFIG_S3C2410_CPUFREQ_UTILS) += 
s3c2410-cpufreq-utils.o
 obj-$(CONFIG_ARCH_S3C2410) += setup-i2c.o
 obj-$(CONFIG_S3C2410_SETUP_TS) += setup-ts.o
 
-# SPI gpio central GPIO functions
-
-obj-$(CONFIG_S3C24XX_SPI_BUS0_GPE11_GPE12_GPE13) += spi-bus0-gpe11_12_13.o
-obj-$(CONFIG_S3C24XX_SPI_BUS1_GPG5_GPG6_GPG7)+= spi-bus1-gpg5_6_7.o
-obj-$(CONFIG_S3C24XX_SPI_BUS1_GPD8_GPD9_GPD10)  += spi-bus1-gpd8_9_10.o
-
 # machine common support
 
 obj-$(CONFIG_MACH_SMDK)+= common-smdk.o
diff --git a/arch/arm/plat-s3c24xx/spi-bus0-gpe11_12_13.c 
b/arch/arm/plat-s3c24xx/spi-bus0-gpe11_12_13.c
deleted file mode 100644
index 704175b..000
--- a/arch/arm/plat-s3c24xx/spi-bus0-gpe11_12_13.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/* linux/arch/arm/plat-s3c24xx/spi-bus0-gpe11_12_13.c
- *
- * Copyright (c) 2008 Simtec Electronics
- * http://armlinux.simtec.co.uk/
- * Ben Dooks b...@simtec.co.uk
- *
- * S3C24XX SPI - gpio configuration for bus 0 on gpe11,12,13
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License.
-*/
-
-#include linux/kernel.h
-#include linux/gpio.h
-
-#include mach/spi.h
-#include mach/regs-gpio.h
-
-void s3c24xx_spi_gpiocfg_bus0_gpe11_12_13(struct s3c2410_spi_info *spi,
- int enable)
-{
-   if (enable) {
-   s3c_gpio_cfgpin(S3C2410_GPE(13), S3C2410_GPE13_SPICLK0);
-   s3c_gpio_cfgpin(S3C2410_GPE(12), S3C2410_GPE12_SPIMOSI0);
-   s3c_gpio_cfgpin(S3C2410_GPE(11), S3C2410_GPE11_SPIMISO0);
-   s3c2410_gpio_pullup(S3C2410_GPE(11), 0);
-   s3c2410_gpio_pullup(S3C2410_GPE(13), 0);
-   } else {
-   s3c_gpio_cfgpin(S3C2410_GPE(13), 

[PATCH 2/2] S3C24XX: move spi-s3c24xx platdata out of mach

2012-01-08 Thread Heiko Stübner
spi.h now only contains the definition of the platform data structure
for the driver in spi-s3c24xx.c . Therefore it does not need to stay
in include/mach but can instead live in linux/spi/s3c24xx.h .

Signed-off-by: Heiko Stuebner he...@sntech.de
---
 arch/arm/mach-s3c2410/include/mach/spi.h |   27 ---
 arch/arm/mach-s3c2440/mach-gta02.c   |2 +-
 drivers/spi/spi-s3c24xx.c|2 +-
 3 files changed, 2 insertions(+), 29 deletions(-)
 delete mode 100644 arch/arm/mach-s3c2410/include/mach/spi.h

diff --git a/arch/arm/mach-s3c2410/include/mach/spi.h 
b/arch/arm/mach-s3c2410/include/mach/spi.h
deleted file mode 100644
index 2a686c0..000
--- a/arch/arm/mach-s3c2410/include/mach/spi.h
+++ /dev/null
@@ -1,27 +0,0 @@
-/* arch/arm/mach-s3c2410/include/mach/spi.h
- *
- * Copyright (c) 2006 Simtec Electronics
- * Ben Dooks b...@simtec.co.uk
- *
- * S3C2410 - SPI Controller platform_device info
- *
- * 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.
-*/
-
-#ifndef __ASM_ARCH_SPI_H
-#define __ASM_ARCH_SPI_H __FILE__
-
-struct s3c2410_spi_info {
-   int  pin_cs;/* simple gpio cs */
-   unsigned int num_cs;/* total chipselects */
-   int  bus_num;   /* bus number to use. */
-
-   unsigned int use_fiq:1; /* use fiq */
-
-   void (*gpio_setup)(struct s3c2410_spi_info *spi, int enable);
-   void (*set_cs)(struct s3c2410_spi_info *spi, int cs, int pol);
-};
-
-#endif /* __ASM_ARCH_SPI_H */
diff --git a/arch/arm/mach-s3c2440/mach-gta02.c 
b/arch/arm/mach-s3c2440/mach-gta02.c
index e8d2eb9..236514c 100644
--- a/arch/arm/mach-s3c2440/mach-gta02.c
+++ b/arch/arm/mach-s3c2440/mach-gta02.c
@@ -38,6 +38,7 @@
 #include linux/platform_device.h
 #include linux/serial_core.h
 #include linux/spi/spi.h
+#include linux/spi/s3c24xx.h
 
 #include linux/mmc/host.h
 
@@ -73,7 +74,6 @@
 #include mach/regs-gpioj.h
 #include mach/fb.h
 
-#include mach/spi.h
 #include plat/usb-control.h
 #include mach/regs-mem.h
 #include mach/hardware.h
diff --git a/drivers/spi/spi-s3c24xx.c b/drivers/spi/spi-s3c24xx.c
index fc06453..8ee7d79 100644
--- a/drivers/spi/spi-s3c24xx.c
+++ b/drivers/spi/spi-s3c24xx.c
@@ -24,10 +24,10 @@
 
 #include linux/spi/spi.h
 #include linux/spi/spi_bitbang.h
+#include linux/spi/s3c24xx.h
 #include linux/module.h
 
 #include plat/regs-spi.h
-#include mach/spi.h
 
 #include plat/fiq.h
 #include asm/fiq.h
-- 
1.7.2.3

--
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 v2 2/2] ARM: Exynos: Hook up power domains to generic power domain infrastructure

2012-01-08 Thread Kyungmin Park
On 1/7/12, Thomas Abraham thomas.abra...@linaro.org wrote:
 Add support for generic power domain for Exynos4 platforms and remove the
 Samsung specific power domain control for Exynos4.

 The generic power domain infrastructure is used to control the power domains
 available on Exynos4. For non-dt platforms, the power domains are statically
 instantiated. For dt platforms, the power domain nodes found in the device
 tree are instantiated.

 Cc: Rafael J. Wysocki r...@sisk.pl
 Cc: Kukjin Kim kgene@samsung.com
 Cc: Kyungmin Park kyungmin.p...@samsung.com
 Cc: Rob Herring rob.herr...@calxeda.com
 Cc: Grant Likely grant.lik...@secretlab.ca
 Signed-off-by: Thomas Abraham thomas.abra...@linaro.org
 ---
 This patch is mainly derived from Mark Brown's work on generic power domain
 support for s3c64xx platforms.

  arch/arm/mach-exynos/Kconfig   |   10 +--
  arch/arm/mach-exynos/Makefile  |2 +-
  arch/arm/mach-exynos/dev-pd.c  |  139 -
  arch/arm/mach-exynos/mach-nuri.c   |   11 --
  arch/arm/mach-exynos/mach-origen.c |   14 --
  arch/arm/mach-exynos/mach-smdkv310.c   |   12 --
  arch/arm/mach-exynos/mach-universal_c210.c |   17 ---
  arch/arm/mach-exynos/pm_domains.c  |  183
 
  8 files changed, 185 insertions(+), 203 deletions(-)
  delete mode 100644 arch/arm/mach-exynos/dev-pd.c
  create mode 100644 arch/arm/mach-exynos/pm_domains.c

 diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
 index e931924..5dec134 100644
 --- a/arch/arm/mach-exynos/Kconfig
 +++ b/arch/arm/mach-exynos/Kconfig
 @@ -32,6 +32,7 @@ config CPU_EXYNOS4210
   select ARM_CPU_SUSPEND if PM
   select S5P_PM if PM
   select S5P_SLEEP if PM
 + select PM_GENERIC_DOMAINS
   help
 Enable EXYNOS4210 CPU support

 @@ -72,11 +73,6 @@ config EXYNOS4_SETUP_FIMD0
   help
 Common setup code for FIMD0.

 -config EXYNOS4_DEV_PD
 - bool
 - help
 -   Compile in platform device definitions for Power Domain
 -
  config EXYNOS4_DEV_SYSMMU
   bool
   help
 @@ -194,7 +190,6 @@ config MACH_SMDKV310
   select EXYNOS4_DEV_AHCI
   select SAMSUNG_DEV_KEYPAD
   select EXYNOS4_DEV_DMA
 - select EXYNOS4_DEV_PD
   select SAMSUNG_DEV_PWM
   select EXYNOS4_DEV_USB_OHCI
   select EXYNOS4_DEV_SYSMMU
 @@ -243,7 +238,6 @@ config MACH_UNIVERSAL_C210
   select S5P_DEV_ONENAND
   select S5P_DEV_TV
   select EXYNOS4_DEV_DMA
 - select EXYNOS4_DEV_PD
   select EXYNOS4_SETUP_FIMD0
   select EXYNOS4_SETUP_I2C1
   select EXYNOS4_SETUP_I2C3
 @@ -277,7 +271,6 @@ config MACH_NURI
   select S5P_DEV_USB_EHCI
   select S5P_SETUP_MIPIPHY
   select EXYNOS4_DEV_DMA
 - select EXYNOS4_DEV_PD
   select EXYNOS4_SETUP_FIMC
   select EXYNOS4_SETUP_FIMD0
   select EXYNOS4_SETUP_I2C1
 @@ -310,7 +303,6 @@ config MACH_ORIGEN
   select SAMSUNG_DEV_BACKLIGHT
   select SAMSUNG_DEV_PWM
   select EXYNOS4_DEV_DMA
 - select EXYNOS4_DEV_PD
   select EXYNOS4_DEV_USB_OHCI
   select EXYNOS4_SETUP_FIMD0
   select EXYNOS4_SETUP_SDHCI
 diff --git a/arch/arm/mach-exynos/Makefile b/arch/arm/mach-exynos/Makefile
 index db527ab..b7e4eca 100644
 --- a/arch/arm/mach-exynos/Makefile
 +++ b/arch/arm/mach-exynos/Makefile
 @@ -17,6 +17,7 @@ obj-$(CONFIG_ARCH_EXYNOS4)  += irq-eint.o pmu.o
  obj-$(CONFIG_CPU_EXYNOS4210) += clock-exynos4210.o
  obj-$(CONFIG_SOC_EXYNOS4212) += clock-exynos4212.o
  obj-$(CONFIG_PM) += pm.o
 +obj-$(CONFIG_PM_GENERIC_DOMAINS) += pm_domains.o
  obj-$(CONFIG_CPU_IDLE)   += cpuidle.o

  obj-$(CONFIG_SMP)+= platsmp.o headsmp.o
 @@ -43,7 +44,6 @@ obj-$(CONFIG_MACH_EXYNOS4_DT)   += 
 mach-exynos4-dt.o

  obj-$(CONFIG_ARCH_EXYNOS4)   += dev-audio.o
  obj-$(CONFIG_EXYNOS4_DEV_AHCI)   += dev-ahci.o
 -obj-$(CONFIG_EXYNOS4_DEV_PD) += dev-pd.o
  obj-$(CONFIG_EXYNOS4_DEV_SYSMMU) += dev-sysmmu.o
  obj-$(CONFIG_EXYNOS4_DEV_DWMCI)  += dev-dwmci.o
  obj-$(CONFIG_EXYNOS4_DEV_DMA)+= dma.o
 diff --git a/arch/arm/mach-exynos/dev-pd.c b/arch/arm/mach-exynos/dev-pd.c
 deleted file mode 100644
 index 3273f25..000
 --- a/arch/arm/mach-exynos/dev-pd.c
 +++ /dev/null
 @@ -1,139 +0,0 @@
 -/* linux/arch/arm/mach-exynos4/dev-pd.c
 - *
 - * Copyright (c) 2010-2011 Samsung Electronics Co., Ltd.
 - *   http://www.samsung.com
 - *
 - * EXYNOS4 - Power Domain support
 - *
 - * 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/io.h
 -#include linux/kernel.h
 -#include linux/platform_device.h
 -#include linux/delay.h
 -
 -#include mach/regs-pmu.h
 -
 -#include plat/pd.h
 -
 -static int exynos4_pd_enable(struct device *dev)
 -{
 - struct 

Re: [PATCH v8 0/2] ommu/exynos: Add IOMMU/System MMU driver for Samsung Exynos

2012-01-08 Thread KyongHo Cho
On Thu, Jan 5, 2012 at 8:47 PM, Joerg Roedel joerg.roe...@amd.com wrote:
 On Wed, Jan 04, 2012 at 09:26:20PM +, Russell King - ARM Linux wrote:
 On Wed, Jan 04, 2012 at 04:01:01PM +0100, Joerg Roedel wrote:
  On Tue, Jan 03, 2012 at 09:55:27AM +, Russell King - ARM Linux wrote:
   It comes through when I stick it in my tree because of a month of asking
   for help to fix something and getting zero response from the maintainers.
  
   It's a way to flag to them that they're doing something wrong - and in
   fact something is broken, and that that brokenness will happen at the
   next merge window unless they get off their butt and do something about
   it.
 
  Okay, fine with me if it really will be fixed in 3.3-rc1 :)

 I can do better than that - and report that it's fixed now.  It should
 show up in linux-next sometime after Stephen pulls this evening.  The
 #error did its job in this case, and ensured that it got fixed!

 Great. So it looks like I can finally compile-test Exynos and merge
 their IOMMU driver after the merge window :)


Thanks to you, Marek and Russell for helps to compile the driver.

I've learned many things from you.

Regards,

KyongHo.
--
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


Build error at drivers/base/power/domain_governor.c when PM_RUNTIME is not set

2012-01-08 Thread Kukjin Kim
Hi Rafael,

This is just reporting of build error.

Current mainline happens build error at drivers/base/power/domain_governor.c
file like following when CONFIG_PM_RUNTIME is not set. For example, it
happens with s3c6400_defconfig now.

drivers/base/power/domain_governor.c: In function 'default_stop_ok':
drivers/base/power/domain_governor.c:25: error: 'struct dev_pm_info' has no
member named 'max_time_suspended_ns'
drivers/base/power/domain_governor.c:29: error: 'struct dev_pm_info' has no
member named 'max_time_suspended_ns'
drivers/base/power/domain_governor.c: In function 'default_power_down_ok':
drivers/base/power/domain_governor.c:94: error: 'struct dev_pm_info' has no
member named 'max_time_suspended_ns'
drivers/base/power/domain_governor.c:98: error: 'struct dev_pm_info' has no
member named 'max_time_suspended_ns'
drivers/base/power/domain_governor.c:100: error: 'struct dev_pm_info' has no
member named 'suspend_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 for v3.3

2012-01-08 Thread Olof Johansson
On Sun, Jan 8, 2012 at 12:49 PM, Mark Brown
broo...@opensource.wolfsonmicro.com wrote:
 On Fri, Jan 06, 2012 at 01:58:29PM -0800, Olof Johansson wrote:

  Please pull Samsung devel for v3.3 from:
  ?git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung.git
  next-samsung-devel-samsung

 Thanks. I've pulled this into late/devel, based on earlier email from
 Arnd we might end up sending this in towards the end of the merge
 window, but there's also a chance it will wait for 3.4.

 That'd be extremely disappointing, especially given that there's some
 bug fixes in there for updates going in this merge window without which
 mainline is going to have problems on s3c64xx (mostly the GPIO stuff).

Of course bug fixes should go in.

Mark, Kukjin, can either of you split out the fixes in a separate branch?


Thanks,

-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


[PATCH] ARM: EXYNOS: Fix build error which was from common.c and old cpu.c

2012-01-08 Thread Kukjin Kim
This fixes build error and wrong merge conflicts.
arch/arm/mach-exynos/common.c: In function 'exynos4_gic_irq_fix_base':
arch/arm/mach-exynos/common.c:393: error: dereferencing pointer to incomplete 
type
arch/arm/mach-exynos/common.c:396: error: dereferencing pointer to incomplete 
type

Following A and B have been created from different base and the build
error was casued in the process of merging and should be fixed in this
merge window.

A. commit db0d4db (ARM: gic: allow GIC to support non-banked setups),
  commit 4e44d2c (ARM: exynos4: convert to CONFIG_MULTI_IRQ_HANDLER)
  and commit 69676c3 (ARM: exynos4: Fix build error due to
  'gic_bank_offset' undeclared)

B. commit cc511b8 (ARM: 7257/1: EXYNOS: introduce arch/arm/mach-exynos/
  common.[ch]) introduced common.[ch])

Cc: Marc Zyngier marc.zyng...@arm.com
Cc: Axel Lin axel@gmail.com
Cc: Russell King rmk+ker...@arm.linux.org.uk
Signed-off-by: Kukjin Kim kgene@samsung.com
---
Hi Russell,

This should be fixed, I'm sending this to patch system.
If you're ok with this, please pick it up for this merge window.

Thanks.

 arch/arm/mach-exynos/common.c |   20 +++-
 1 files changed, 3 insertions(+), 17 deletions(-)

diff --git a/arch/arm/mach-exynos/common.c b/arch/arm/mach-exynos/common.c
index b6ac6ee..647c843 100644
--- a/arch/arm/mach-exynos/common.c
+++ b/arch/arm/mach-exynos/common.c
@@ -19,6 +19,7 @@
 #include linux/serial_core.h
 
 #include asm/proc-fns.h
+#include asm/exception.h
 #include asm/hardware/cache-l2x0.h
 #include asm/hardware/gic.h
 #include asm/mach/map.h
@@ -43,8 +44,6 @@
 
 #include common.h
 
-unsigned int gic_bank_offset __read_mostly;
-
 static const char name_exynos4210[] = EXYNOS4210;
 static const char name_exynos4212[] = EXYNOS4212;
 static const char name_exynos4412[] = EXYNOS4412;
@@ -386,27 +385,14 @@ static void __init combiner_init(unsigned int 
combiner_nr, void __iomem *base,
}
 }
 
-static void exynos4_gic_irq_fix_base(struct irq_data *d)
-{
-   struct gic_chip_data *gic_data = irq_data_get_irq_chip_data(d);
-
-   gic_data-cpu_base = S5P_VA_GIC_CPU +
-   (gic_bank_offset * smp_processor_id());
-
-   gic_data-dist_base = S5P_VA_GIC_DIST +
-   (gic_bank_offset * smp_processor_id());
-}
-
 void __init exynos4_init_irq(void)
 {
int irq;
+   unsigned int gic_bank_offset;
 
gic_bank_offset = soc_is_exynos4412() ? 0x4000 : 0x8000;
 
-   gic_init(0, IRQ_PPI(0), S5P_VA_GIC_DIST, S5P_VA_GIC_CPU);
-   gic_arch_extn.irq_eoi = exynos4_gic_irq_fix_base;
-   gic_arch_extn.irq_unmask = exynos4_gic_irq_fix_base;
-   gic_arch_extn.irq_mask = exynos4_gic_irq_fix_base;
+   gic_init_bases(0, IRQ_PPI(0), S5P_VA_GIC_DIST, S5P_VA_GIC_CPU, 
gic_bank_offset);
 
for (irq = 0; irq  MAX_COMBINER_NR; irq++) {
 
-- 
1.7.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] ARM: EXYNOS: Fix build error which was from common.c and old cpu.c

2012-01-08 Thread Kyungmin Park
On 1/9/12, Kukjin Kim kgene@samsung.com wrote:
 This fixes build error and wrong merge conflicts.
 arch/arm/mach-exynos/common.c: In function 'exynos4_gic_irq_fix_base':
 arch/arm/mach-exynos/common.c:393: error: dereferencing pointer to
 incomplete type
 arch/arm/mach-exynos/common.c:396: error: dereferencing pointer to
 incomplete type

 Following A and B have been created from different base and the build
 error was casued in the process of merging and should be fixed in this
 merge window.

Acked-by: Kyungmin Park kyungmin.p...@samsung.com

Do the same job. boot tested.

 A. commit db0d4db (ARM: gic: allow GIC to support non-banked setups),
   commit 4e44d2c (ARM: exynos4: convert to CONFIG_MULTI_IRQ_HANDLER)
   and commit 69676c3 (ARM: exynos4: Fix build error due to
   'gic_bank_offset' undeclared)

 B. commit cc511b8 (ARM: 7257/1: EXYNOS: introduce arch/arm/mach-exynos/
   common.[ch]) introduced common.[ch])

 Cc: Marc Zyngier marc.zyng...@arm.com
 Cc: Axel Lin axel@gmail.com
 Cc: Russell King rmk+ker...@arm.linux.org.uk
 Signed-off-by: Kukjin Kim kgene@samsung.com
 ---
 Hi Russell,

 This should be fixed, I'm sending this to patch system.
 If you're ok with this, please pick it up for this merge window.

 Thanks.

  arch/arm/mach-exynos/common.c |   20 +++-
  1 files changed, 3 insertions(+), 17 deletions(-)

 diff --git a/arch/arm/mach-exynos/common.c b/arch/arm/mach-exynos/common.c
 index b6ac6ee..647c843 100644
 --- a/arch/arm/mach-exynos/common.c
 +++ b/arch/arm/mach-exynos/common.c
 @@ -19,6 +19,7 @@
  #include linux/serial_core.h

  #include asm/proc-fns.h
 +#include asm/exception.h
Not needed.
  #include asm/hardware/cache-l2x0.h
  #include asm/hardware/gic.h
  #include asm/mach/map.h
 @@ -43,8 +44,6 @@

  #include common.h

 -unsigned int gic_bank_offset __read_mostly;
 -
  static const char name_exynos4210[] = EXYNOS4210;
  static const char name_exynos4212[] = EXYNOS4212;
  static const char name_exynos4412[] = EXYNOS4412;
 @@ -386,27 +385,14 @@ static void __init combiner_init(unsigned int
 combiner_nr, void __iomem *base,
   }
  }

 -static void exynos4_gic_irq_fix_base(struct irq_data *d)
 -{
 - struct gic_chip_data *gic_data = irq_data_get_irq_chip_data(d);
 -
 - gic_data-cpu_base = S5P_VA_GIC_CPU +
 - (gic_bank_offset * smp_processor_id());
 -
 - gic_data-dist_base = S5P_VA_GIC_DIST +
 - (gic_bank_offset * smp_processor_id());
 -}
 -
  void __init exynos4_init_irq(void)
  {
   int irq;
 + unsigned int gic_bank_offset;

   gic_bank_offset = soc_is_exynos4412() ? 0x4000 : 0x8000;

 - gic_init(0, IRQ_PPI(0), S5P_VA_GIC_DIST, S5P_VA_GIC_CPU);
 - gic_arch_extn.irq_eoi = exynos4_gic_irq_fix_base;
 - gic_arch_extn.irq_unmask = exynos4_gic_irq_fix_base;
 - gic_arch_extn.irq_mask = exynos4_gic_irq_fix_base;
 + gic_init_bases(0, IRQ_PPI(0), S5P_VA_GIC_DIST, S5P_VA_GIC_CPU,
 gic_bank_offset);

   for (irq = 0; irq  MAX_COMBINER_NR; irq++) {

 --
 1.7.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

--
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 for v3.3

2012-01-08 Thread Olof Johansson
On Sun, Jan 8, 2012 at 5:40 PM, Kukjin Kim kgene@samsung.com wrote:
 Olof Johansson wrote:

 On Sun, Jan 8, 2012 at 12:49 PM, Mark Brown
 broo...@opensource.wolfsonmicro.com wrote:
  On Fri, Jan 06, 2012 at 01:58:29PM -0800, Olof Johansson wrote:
 
   Please pull Samsung devel for v3.3 from:
   ?git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung.git
   next-samsung-devel-samsung
 
  Thanks. I've pulled this into late/devel, based on earlier email from
  Arnd we might end up sending this in towards the end of the merge
  window, but there's also a chance it will wait for 3.4.
 
  That'd be extremely disappointing, especially given that there's some
  bug fixes in there for updates going in this merge window without which
  mainline is going to have problems on s3c64xx (mostly the GPIO stuff).

 Of course bug fixes should go in.

 Mark, Kukjin, can either of you split out the fixes in a separate branch?

 Hi Olof,

 In my opinion, as you know, it would be better to us if you could send this 
 in this merge window.
 Actually, it does not have any dependency with others, in addition, for a 
 long time this has been included in linux-next for this
 merge window.
 If this can be missed from sending list to Linus, please kindly let me know. 
 Let me send this to Linus at the end of this merge
 window.

We've been pretty clear on this: Everything that came in after Arnd's
email (that wasn't obvious fixes) would be queued as late/* and, if
there is time, go in towards the end of the merge window. There's
plenty of time left in the window so right now it looks likely to
happen, especially since the branch lacks dependencies and applies
relatively cleanly.


-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