Re: [PATCH v3 1/2] i2c: s3c2410: Keep a copy of platform data and use it
On 9/12/2011 9:16 PM, Thomas Abraham wrote: @@ -809,6 +810,15 @@ static int s3c24xx_i2c_probe(struct platform_device *pdev) return -ENOMEM; } + i2c-pdata = devm_kzalloc(pdev-dev, sizeof(*pdata), GFP_KERNEL); + if (!i2c-pdata) { + ret = -ENOMEM; + goto err_noclk; + } + + if (pdata) + memcpy(i2c-pdata, pdata, sizeof(*pdata)); + Is there a devm_kmemdup()? If not, maybe it would be a good idea to add it. -- Sent by an employee of the Qualcomm Innovation Center, Inc. The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum. -- 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 v2 0/2] Add device tree support for Samsung's keypad controller driver
Changes since v1: - Addressed comments from Dmitry Torokhov. - Type of controller is cached in driver's private data and the function that determines the type of the controller for each keypad scan is removed. - pdata allocated during probe is explicitly freed after probe completes without any error. In case of exit from probe due a error, no explicit deallocation of pdata memory is performed and it is left to devres to handle that. - The generic code to translate KEY(x,y,code) is retained in the driver itself. I am unsure of a right common place for it. - Driver continues with the probe even if one or more gpio configuration fails. - Patch 1 that adds a new config option is still retained in this patchset. This patchset adds device tree support for samsung's keypad controller driver. First patch adds a new config option to be used by device tree enabled platforms for selecting the samsung's keypad controller driver. The second patch adds device tree support for the keypad driver. Thomas Abraham (2): input: samsung-keypad: Add HAVE_SAMSUNG_KEYPAD config option input: samsung-keypad: Add device tree support .../devicetree/bindings/input/samsung-keypad.txt | 88 ++ drivers/input/keyboard/Kconfig |9 +- drivers/input/keyboard/samsung-keypad.c| 177 ++-- 3 files changed, 261 insertions(+), 13 deletions(-) create mode 100644 Documentation/devicetree/bindings/input/samsung-keypad.txt -- 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] input: samsung-keypad: Add HAVE_SAMSUNG_KEYPAD config option
For platforms using device tree, the static keypad device instances are not required and SAMSUNG_DEV_KEYPAD is not selected. Since, samsung keypad driver has dependency on SAMSUNG_DEV_KEYPAD config option, the driver is left out of the compilation for dt enabled platforms. An additional config option 'HAVE_SAMSUNG_KEYPAD' is added which the device tree based platforms can select. This config option is added as an alternative dependency for keypad driver. Signed-off-by: Thomas Abraham thomas.abra...@linaro.org --- drivers/input/keyboard/Kconfig |9 - 1 files changed, 8 insertions(+), 1 deletions(-) diff --git a/drivers/input/keyboard/Kconfig b/drivers/input/keyboard/Kconfig index b4dee9d..7c322a3 100644 --- a/drivers/input/keyboard/Kconfig +++ b/drivers/input/keyboard/Kconfig @@ -423,9 +423,16 @@ config KEYBOARD_PMIC8XXX To compile this driver as a module, choose M here: the module will be called pmic8xxx-keypad. +config HAVE_SAMSUNG_KEYPAD + bool + help + This will include Samsung Keypad controller driver support. If you + want to include Samsung Keypad support for any machine, kindly + select this in the respective mach-/Kconfig file. + config KEYBOARD_SAMSUNG tristate Samsung keypad support - depends on SAMSUNG_DEV_KEYPAD + depends on SAMSUNG_DEV_KEYPAD || HAVE_SAMSUNG_KEYPAD help Say Y here if you want to use the Samsung keypad. -- 1.6.6.rc2 -- 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/2] input: samsung-keypad: Add device tree support
Add device tree based discovery support for Samsung's keypad controller. Cc: Joonyoung Shim jy0922.s...@samsung.com Cc: Donghwa Lee dh09@samsung.com Signed-off-by: Thomas Abraham thomas.abra...@linaro.org --- .../devicetree/bindings/input/samsung-keypad.txt | 88 ++ drivers/input/keyboard/samsung-keypad.c| 177 ++-- 2 files changed, 253 insertions(+), 12 deletions(-) create mode 100644 Documentation/devicetree/bindings/input/samsung-keypad.txt diff --git a/Documentation/devicetree/bindings/input/samsung-keypad.txt b/Documentation/devicetree/bindings/input/samsung-keypad.txt new file mode 100644 index 000..e1c7237 --- /dev/null +++ b/Documentation/devicetree/bindings/input/samsung-keypad.txt @@ -0,0 +1,88 @@ +* Samsung's Keypad Controller device tree bindings + +Samsung's Keypad controller is used to interface a SoC with a matrix-type +keypad device. The keypad controller supports multiple row and column lines. +A key can be placed at each intersection of a unique row and a unique column. +The keypad controller can sense a key-press and key-release and report the +event using a interrupt to the cpu. + +Required SoC Specific Properties: +- compatible: should be one of the following + - samsung,s3c6410-keypad: For controllers compatible with s3c6410 keypad +controller. + - samsung,s5pv210-keypad: For controllers compatible with s5pv210 keypad +controller. + +- reg: physical base address of the controller and length of memory mapped + region. + +- interrupts: The interrupt number to the cpu. + +Required Board Specific Properties: +- samsung,keypad-num-rows: Number of row lines connected to the keypad + controller. + +- samsung,keypad-num-columns: Number of column lines connected to the + keypad controller. + +- row-gpios: List of gpios used as row lines. The gpio specifier for + this property depends on the gpio controller to which these row lines + are connected. + +- col-gpios: List of gpios used as column lines. The gpio specifier for + this property depends on the gpio controller to which these column + lines are connected. + +- Keys represented as child nodes: Each key connected to the keypad + controller is represented as a child node to the keypad controller + device node and should include the following properties. + - keypad,row: the row number to which the key is connected. + - keypad,column: the column number to which the key is connected. + - keypad,key-code: the key-code to be reported when the key is pressed +and released. + +Optional Properties specific to linux: +- linux,keypad-no-autorepeat: do no enable autorepeat feature. +- linux,keypad-wakeup: use any event on keypad as wakeup event. + + +Example: + keypad@100A { + compatible = samsung,s5pv210-keypad; + reg = 0x100A 0x100; + interrupts = 173; + samsung,keypad-num-rows = 2; + samsung,keypad-num-columns = 8; + linux,input-no-autorepeat; + linux,input-wakeup; + + row-gpios = gpx2 0 3 3 0 +gpx2 1 3 3 0; + + col-gpios = gpx1 0 3 0 0 +gpx1 1 3 0 0 +gpx1 2 3 0 0 +gpx1 3 3 0 0 +gpx1 4 3 0 0 +gpx1 5 3 0 0 +gpx1 6 3 0 0 +gpx1 7 3 0 0; + + key_1 { + keypad,row = 0; + keypad,column = 3; + keypad,key-code = 2; + }; + + key_2 { + keypad,row = 0; + keypad,column = 4; + keypad,key-code = 3; + }; + + key_3 { + keypad,row = 0; + keypad,column = 5; + keypad,key-code = 4; + }; + }; diff --git a/drivers/input/keyboard/samsung-keypad.c b/drivers/input/keyboard/samsung-keypad.c index f689f49..cf01a56 100644 --- a/drivers/input/keyboard/samsung-keypad.c +++ b/drivers/input/keyboard/samsung-keypad.c @@ -21,6 +21,8 @@ #include linux/module.h #include linux/platform_device.h #include linux/slab.h +#include linux/of.h +#include linux/of_gpio.h #include linux/sched.h #include plat/keypad.h @@ -68,31 +70,26 @@ struct samsung_keypad { wait_queue_head_t wait; bool stopped; int irq; + enum samsung_keypad_type type; unsigned int row_shift; unsigned int rows; unsigned int cols; unsigned int row_state[SAMSUNG_MAX_COLS]; +#ifdef CONFIG_OF + int row_gpios[SAMSUNG_MAX_ROWS]; + int col_gpios[SAMSUNG_MAX_COLS]; +#endif unsigned short keycodes[]; }; -static int samsung_keypad_is_s5pv210(struct device *dev) -{ - struct platform_device *pdev =
[PATCH] mmc: core: eMMC 4.5 Power Class Selection Feature
This patch adds the power class selection feature available for mmc versions 4.0 and above. During the enumeration stage before switching to the lower data bus, check if the power class is supported for the current bus width. If the power class is available then switch to the power class and use the higher data bus. If power class is not supported then switch to the lower data bus in a worst case. Signed-off-by: Girish K S girish.shivananja...@linaro.org --- drivers/mmc/core/mmc.c | 77 +++ include/linux/mmc/mmc.h | 13 2 files changed, 90 insertions(+), 0 deletions(-) diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c index 63cc77b..a4004da 100644 --- a/drivers/mmc/core/mmc.c +++ b/drivers/mmc/core/mmc.c @@ -536,6 +536,81 @@ static struct device_type mmc_type = { }; /* + * Select the PowerClass for the current bus width + * If power class is defined for 4/8 bit bus in the + * extended CSD register, select it by executing the + * mmc_switch command. + */ +static int mmc_select_powerclass(struct mmc_card *card, unsigned int bus_width) +{ + u8 *ext_csd; + int err; + unsigned int pwrclass_val; + unsigned int index = 0; + struct mmc_host *host = card-host; + + BUG_ON(!card); + BUG_ON(!host); + + /* Power class selection is supported for versions = 4.0 */ + if (card-csd.mmca_vsn CSD_SPEC_VER_4) + return 0; + /*Power class values are defined only for 4/8 bit bus*/ + if (bus_width == EXT_CSD_BUS_WIDTH_1) + return 0; + + switch ((1 host-ios.vdd)) { + case MMC_VDD_165_195: + if (host-ios.clock = 2600) + index = EXT_CSD_PWR_CL_26_195; + else if (host-ios.clock = 5200) + index = (bus_width = EXT_CSD_BUS_WIDTH_8) ? + EXT_CSD_PWR_CL_52_195 : + EXT_CSD_PWR_CL_DDR_52_195; + else if (host-ios.clock = 2) + index = EXT_CSD_PWR_CL_200_195; + break; + case MMC_VDD_32_33: + case MMC_VDD_33_34: + case MMC_VDD_34_35: + case MMC_VDD_35_36: + if (host-ios.clock = 2600) + index = EXT_CSD_PWR_CL_26_360; + else if (host-ios.clock = 5200) + index = (bus_width = EXT_CSD_BUS_WIDTH_8) ? + EXT_CSD_PWR_CL_52_360 : + EXT_CSD_PWR_CL_DDR_52_360; + else if (host-ios.clock = 2) + index = EXT_CSD_PWR_CL_200_360; + break; + default: + BUG(); + break; + } + + err = mmc_get_ext_csd(card, ext_csd); + if (err) + goto ret; + + pwrclass_val = ext_csd[index]; + + if (bus_width (EXT_CSD_BUS_WIDTH_8 | EXT_CSD_DDR_BUS_WIDTH_8)) + pwrclass_val = (pwrclass_val EXT_CSD_PWR_CL_8BIT_MASK) + EXT_CSD_PWR_CL_8BIT_SHIFT; + else + pwrclass_val = (pwrclass_val EXT_CSD_PWR_CL_4BIT_MASK) + EXT_CSD_PWR_CL_4BIT_SHIFT; + + err = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL, + EXT_CSD_POWER_CLASS, + pwrclass_val, + 0); +ret: + mmc_free_ext_csd(ext_csd); + return err; +} + +/* * Handle the detection and initialisation of a card. * * In the case of a resume, oldcard will contain the card @@ -802,6 +877,7 @@ static int mmc_init_card(struct mmc_host *host, u32 ocr, bus_width = bus_widths[idx]; if (bus_width == MMC_BUS_WIDTH_1) ddr = 0; /* no DDR for 1-bit width */ + mmc_select_powerclass(card, ext_csd_bits[idx][0]); err = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL, EXT_CSD_BUS_WIDTH, ext_csd_bits[idx][0], @@ -825,6 +901,7 @@ static int mmc_init_card(struct mmc_host *host, u32 ocr, } if (!err ddr) { + mmc_select_powerclass(card, ext_csd_bits[idx][1]); err = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL, EXT_CSD_BUS_WIDTH, ext_csd_bits[idx][1], diff --git a/include/linux/mmc/mmc.h b/include/linux/mmc/mmc.h index a788e01..e183e32 100644 --- a/include/linux/mmc/mmc.h +++ b/include/linux/mmc/mmc.h @@ -279,10 +279,15 @@ struct _mmc_csd { #define EXT_CSD_ERASED_MEM_CONT181 /* RO */ #define EXT_CSD_BUS_WIDTH 183 /* R/W */ #define EXT_CSD_HS_TIMING 185 /* R/W */ +#define
[PATCH V5 0/2] Poweroff Notify eMMC 4.5
This patch version fixes the problem with power off notify function, when called for the first time and card is not yet initialised. Earlier version will generate a core dump, so a check for NULL is required in the power off function. Girish K S (2): mmc: core: Add power off notify feature(eMMC 4.5) mmc: core: Add Poweroff Notify handling eMMC 4.5 drivers/mmc/core/core.c | 34 ++ drivers/mmc/core/mmc.c | 22 -- drivers/mmc/host/sdhci.c | 10 ++ include/linux/mmc/card.h | 20 include/linux/mmc/host.h |5 + include/linux/mmc/mmc.h |7 +++ 6 files changed, 96 insertions(+), 2 deletions(-) -- 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 V5 1/2] mmc: core: Add power off notify feature(eMMC 4.5)
This patch adds the support for power off notify feature available in eMMC 4.5 devices. If the the host has support for this feature, then the mmc core will notify it to the device by setting the POWER_OFF_NOTIFICATION byte in the extended csd register with a value 1(POWER_ON). This patch should be applied after Seungwon Jeon's patch for cmd6 timeout. Signed-off-by: Girish K S girish.shivananja...@linaro.org --- drivers/mmc/core/mmc.c | 19 +-- include/linux/mmc/card.h |1 + include/linux/mmc/host.h |1 + include/linux/mmc/mmc.h |7 +++ 4 files changed, 26 insertions(+), 2 deletions(-) diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c index 68eb368..2f06b37 100644 --- a/drivers/mmc/core/mmc.c +++ b/drivers/mmc/core/mmc.c @@ -410,10 +410,12 @@ static int mmc_read_ext_csd(struct mmc_card *card, u8 *ext_csd) else card-erased_byte = 0x0; - if (card-ext_csd.rev = 6) + if (card-ext_csd.rev = 6) { card-ext_csd.generic_cmd6_time = 10 * ext_csd[EXT_CSD_GENERIC_CMD6_TIME]; - + card-ext_csd.power_off_longtime = 10 * + ext_csd[EXT_CSD_POWER_OFF_LONG_TIME]; + } out: return err; } @@ -710,6 +712,19 @@ static int mmc_init_card(struct mmc_host *host, u32 ocr, } /* +* If the host supports the power_off_notify capability then +* set the notification byte in the ext_csd register of device +*/ + if (host-caps MMC_CAP_POWER_OFF_NOTIFY) { + err = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL, + EXT_CSD_POWER_OFF_NOTIFICATION, + EXT_CSD_POWER_ON, + card-ext_csd.generic_cmd6_time); + if (err err != -EBADMSG) + goto free_card; + } + + /* * Activate high speed (if supported) */ if ((card-ext_csd.hs_max_dtr != 0) diff --git a/include/linux/mmc/card.h b/include/linux/mmc/card.h index e992fe3..2bf2843 100644 --- a/include/linux/mmc/card.h +++ b/include/linux/mmc/card.h @@ -53,6 +53,7 @@ struct mmc_ext_csd { unsigned intpart_time; /* Units: ms */ unsigned intsa_timeout; /* Units: 100ns */ unsigned intgeneric_cmd6_time; /* Units: ms */ + unsigned intpower_off_longtime; /* Units: ms */ unsigned inths_max_dtr; unsigned intsectors; unsigned intcard_type; diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h index 1d09562..cf2dadc 100644 --- a/include/linux/mmc/host.h +++ b/include/linux/mmc/host.h @@ -229,6 +229,7 @@ struct mmc_host { #define MMC_CAP_MAX_CURRENT_600(1 28) /* Host max current limit is 600mA */ #define MMC_CAP_MAX_CURRENT_800(1 29) /* Host max current limit is 800mA */ #define MMC_CAP_CMD23 (1 30) /* CMD23 supported. */ +#define MMC_CAP_POWER_OFF_NOTIFY(1 31)/*Notify poweroff supported */ mmc_pm_flag_t pm_caps;/* supported pm features */ diff --git a/include/linux/mmc/mmc.h b/include/linux/mmc/mmc.h index e869f00..a788e01 100644 --- a/include/linux/mmc/mmc.h +++ b/include/linux/mmc/mmc.h @@ -270,6 +270,7 @@ struct _mmc_csd { * EXT_CSD fields */ +#define EXT_CSD_POWER_OFF_NOTIFICATION 34 /* R/W */ #define EXT_CSD_PARTITION_ATTRIBUTE156 /* R/W */ #define EXT_CSD_PARTITION_SUPPORT 160 /* RO */ #define EXT_CSD_WR_REL_PARAM 166 /* RO */ @@ -293,6 +294,7 @@ struct _mmc_csd { #define EXT_CSD_SEC_ERASE_MULT 230 /* RO */ #define EXT_CSD_SEC_FEATURE_SUPPORT231 /* RO */ #define EXT_CSD_TRIM_MULT 232 /* RO */ +#define EXT_CSD_POWER_OFF_LONG_TIME247 /*RO*/ #define EXT_CSD_GENERIC_CMD6_TIME 248 /* RO */ /* @@ -329,6 +331,11 @@ struct _mmc_csd { #define EXT_CSD_SEC_BD_BLK_EN BIT(2) #define EXT_CSD_SEC_GB_CL_EN BIT(4) +#define EXT_CSD_NO_POWER_NOTIFICATION 0 +#define EXT_CSD_POWER_ON 1 +#define EXT_CSD_POWER_OFF_SHORT2 +#define EXT_CSD_POWER_OFF_LONG 3 + /* * MMC_SWITCH access modes */ -- 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
[PATCH V5 2/2] mmc: core: Add Poweroff Notify handling eMMC 4.5
This patch adds the power off notification handling during suspend and system poweroff. For suspend mode short timeout is used, whereas for the normal poweroff long timeout is used. Signed-off-by: Girish K S girish.shivananja...@linaro.org --- drivers/mmc/core/core.c | 34 ++ drivers/mmc/core/mmc.c |5 - drivers/mmc/host/sdhci.c | 10 ++ include/linux/mmc/card.h | 19 +++ include/linux/mmc/host.h |4 5 files changed, 71 insertions(+), 1 deletions(-) diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c index 91a0a74..157060f 100644 --- a/drivers/mmc/core/core.c +++ b/drivers/mmc/core/core.c @@ -1130,9 +1130,41 @@ static void mmc_power_up(struct mmc_host *host) static void mmc_power_off(struct mmc_host *host) { + struct mmc_card *card = host-card; + unsigned int notify_type; + unsigned int timeout; + int err; + host-ios.clock = 0; host-ios.vdd = 0; + if ( card != NULL mmc_card_mmc(card) + (mmc_card_powernotify_on(card))) { + + if (host-power_notify_type == MMC_HOST_PW_NOTIFY_SHORT) { + notify_type = EXT_CSD_POWER_OFF_SHORT; + timeout = card-ext_csd.generic_cmd6_time; + mmc_card_set_powernotify_short(card); + } else { + notify_type = EXT_CSD_POWER_OFF_LONG; + timeout = card-ext_csd.power_off_longtime; + mmc_card_set_powernotify_long(card); + } + + err = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL, + EXT_CSD_POWER_OFF_NOTIFICATION, + notify_type, timeout); + + if (err err != -EBADMSG) + printk(KERN_ERR Device failed to respond + within %d poweroff time. + forcefully powering down + the device\n, timeout); + + /*Set the card state to no notification after the poweroff*/ + mmc_card_set_powernotify_off(card); + } + /* * Reset ocr mask to be the highest possible voltage supported for * this mmc host. This value will be used at next power up. @@ -2022,6 +2054,7 @@ int mmc_pm_notify(struct notifier_block *notify_block, spin_lock_irqsave(host-lock, flags); host-rescan_disable = 1; + host-power_notify_type = MMC_HOST_PW_NOTIFY_SHORT; spin_unlock_irqrestore(host-lock, flags); cancel_delayed_work_sync(host-detect); @@ -2044,6 +2077,7 @@ int mmc_pm_notify(struct notifier_block *notify_block, spin_lock_irqsave(host-lock, flags); host-rescan_disable = 0; + host-power_notify_type = MMC_HOST_PW_NOTIFY_LONG; spin_unlock_irqrestore(host-lock, flags); mmc_detect_change(host, 0); diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c index 2f06b37..63cc77b 100644 --- a/drivers/mmc/core/mmc.c +++ b/drivers/mmc/core/mmc.c @@ -715,7 +715,8 @@ static int mmc_init_card(struct mmc_host *host, u32 ocr, * If the host supports the power_off_notify capability then * set the notification byte in the ext_csd register of device */ - if (host-caps MMC_CAP_POWER_OFF_NOTIFY) { + if ((host-caps MMC_CAP_POWER_OFF_NOTIFY) + (mmc_card_powernotify_off(card))) { err = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL, EXT_CSD_POWER_OFF_NOTIFICATION, EXT_CSD_POWER_ON, @@ -724,6 +725,8 @@ static int mmc_init_card(struct mmc_host *host, u32 ocr, goto free_card; } + if(!err) + mmc_card_set_powernotify_on(card); /* * Activate high speed (if supported) */ diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c index 0e02cc1..92ea734 100644 --- a/drivers/mmc/host/sdhci.c +++ b/drivers/mmc/host/sdhci.c @@ -2566,6 +2566,16 @@ int sdhci_add_host(struct sdhci_host *host) if (caps[1] SDHCI_DRIVER_TYPE_D) mmc-caps |= MMC_CAP_DRIVER_TYPE_D; + /* +* If Notify capability is enabled and +* notify type is not initialised by host, set default to +* long power off notify timeout value +*/ + if (mmc-caps MMC_CAP_POWER_OFF_NOTIFY) + mmc-power_notify_type = MMC_HOST_PW_NOTIFY_SHORT; + else + mmc-power_notify_type = MMC_HOST_PW_NOTIFY_NONE; + /* Initial value for re-tuning timer count */ host-tuning_count = (caps[1] SDHCI_RETUNING_TIMER_COUNT_MASK) SDHCI_RETUNING_TIMER_COUNT_SHIFT; diff --git a/include/linux/mmc/card.h
RE: [PATCH] mmc: core: Fix the incorrect calculation for erase unit size.
Chris Ball wrote: Hi, On Thu, Sep 08 2011, Seungwon Jeon wrote: Erase unit size of high capacity is multiple of 512KiB not 1024KiB. Could we have some more info, please? What are the visible symptoms of the erase unit size being incorrect, how did you realize this was a problem, should this patch be applied to stable@, etc. It is mentioned from eMMC Spec. Erase unit size is defined in 512Kbyte * HC_ERASE_GRP_SIZE(EXT_CSD[224]). Thanks. Thanks, - Chris. -- 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] mmc: core: Fix the incorrect calculation for erase unit size.
Hi, On Tue, Sep 13 2011, Seungwon Jeon wrote: On Thu, Sep 08 2011, Seungwon Jeon wrote: Erase unit size of high capacity is multiple of 512KiB not 1024KiB. Could we have some more info, please? What are the visible symptoms of the erase unit size being incorrect, how did you realize this was a problem, should this patch be applied to stable@, etc. It is mentioned from eMMC Spec. Erase unit size is defined in 512Kbyte * HC_ERASE_GRP_SIZE(EXT_CSD[224]). You haven't answered any of the other questions I asked, though. Thanks, - Chris. -- 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] mmc: core: Fix the incorrect calculation for erase unit size.
Chris Ball wrote: Hi, On Tue, Sep 13 2011, Seungwon Jeon wrote: On Thu, Sep 08 2011, Seungwon Jeon wrote: Erase unit size of high capacity is multiple of 512KiB not 1024KiB. Could we have some more info, please? What are the visible symptoms of the erase unit size being incorrect, how did you realize this was a problem, should this patch be applied to stable@, etc. It is mentioned from eMMC Spec. Erase unit size is defined in 512Kbyte * HC_ERASE_GRP_SIZE(EXT_CSD[224]). You haven't answered any of the other questions I asked, though. I didn't catch symptoms you expect. But it seems like plain. I just noticed the difference with spec. Best regards, Seungwon Jeon. Thanks, - Chris. -- 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 2/2] ARM: Exynos4: use s5p-timer for UniversalC210 board
Hi, It's required for boot universal c210 w/ EVT0 chip. Can you include it at 3.1 fixed branch? Thank you, Kyungmin Park On Tue, Jul 26, 2011 at 2:50 PM, Marek Szyprowski m.szyprow...@samsung.com wrote: Commit 069d4e743 removed support for local timers and forced to use MCT as event source. However MCT is not operating properly on early revision (EVT0) of Exynos4 SoCs. All UniversalC210 boards are based on Exynos4 EVT0, so that commit broke support for it. This patch provides a workaround that enables UniversalC210 boards to boot again. s5p-timer is used as an event source. Signed-off-by: Marek Szyprowski m.szyprow...@samsung.com Signed-off-by: Kyungmin Park kyungmin.p...@samsung.com --- arch/arm/mach-exynos4/Kconfig | 3 +++ arch/arm/mach-exynos4/mach-universal_c210.c | 4 +++- 2 files changed, 6 insertions(+), 1 deletions(-) diff --git a/arch/arm/mach-exynos4/Kconfig b/arch/arm/mach-exynos4/Kconfig index 9d62e13..2aad73f 100644 --- a/arch/arm/mach-exynos4/Kconfig +++ b/arch/arm/mach-exynos4/Kconfig @@ -173,6 +173,9 @@ config MACH_ARMLEX4210 config MACH_UNIVERSAL_C210 bool Mobile UNIVERSAL_C210 Board select CPU_EXYNOS4210 + select S5P_HRT + select CLKSRC_MMIO + select HAVE_SCHED_CLOCK select S5P_GPIO_INT select S5P_DEV_FIMC0 select S5P_DEV_FIMC1 diff --git a/arch/arm/mach-exynos4/mach-universal_c210.c b/arch/arm/mach-exynos4/mach-universal_c210.c index 0e280d1..ca9e7b7 100644 --- a/arch/arm/mach-exynos4/mach-universal_c210.c +++ b/arch/arm/mach-exynos4/mach-universal_c210.c @@ -34,6 +34,7 @@ #include plat/mfc.h #include plat/sdhci.h #include plat/pd.h +#include plat/s5p-time.h #include mach/map.h @@ -730,6 +731,7 @@ static void __init universal_map_io(void) s5p_init_io(NULL, 0, S5P_VA_CHIPID); s3c24xx_init_clocks(2400); s3c24xx_init_uarts(universal_uartcfgs, ARRAY_SIZE(universal_uartcfgs)); + s5p_set_timer_source(S5P_PWM2, S5P_PWM4); } static void __init universal_reserve(void) @@ -766,6 +768,6 @@ MACHINE_START(UNIVERSAL_C210, UNIVERSAL_C210) .init_irq = exynos4_init_irq, .map_io = universal_map_io, .init_machine = universal_machine_init, - .timer = exynos4_timer, + .timer = s5p_timer, .reserve = universal_reserve, MACHINE_END -- 1.7.1.569.g6f426 -- 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