Re: [PATCH V9 0/2] HS200 Mode support for device and host
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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