Re: [PATCH 00/17] omap_hsmmc: regulator usage cleanup and fixes

2015-08-03 Thread Andreas Fenkart
Hi Kishon, Thanks for taking a look at the regulator code. Do you have a public git repository so I can pull your patches instead of cherry picking 1-by-1? /Andi 2015-07-29 13:09 GMT+02:00 Kishon Vijay Abraham I kis...@ti.com: This patch series does the following *) Uses

Re: [PATCH 3/3] mmc: host: omap_hsmmc: Add custom card detect irq handler

2015-07-21 Thread Andreas Fenkart
...@ti.com: On Sunday 21 June 2015 04:15 AM, Andreas Fenkart wrote: I haven't managed to produce a hang without this patch Reproducing this hang is not straight forward. It takes 40-50 card insertion/removal to see this case (sometimes even 100 tries). see also comments below 2015-06-16 12:37

[PATCH] Documentation: dt: update ti,am33xx-hsmmc swakeup workaround

2015-07-07 Thread Andreas Fenkart
-by: Andreas Fenkart afenk...@gmail.com --- Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt b/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt index 76bf087

[PATCH 1/2] mmc: omap_hsmmc: call omap_hsmmc_set_power directly

2015-07-07 Thread Andreas Fenkart
and exits, otherwise the fallback code is used. Signed-off-by: Andreas Fenkart afenk...@gmail.com --- drivers/mmc/host/omap_hsmmc.c | 32 +--- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c

[PATCH v2 0/2] mmc: omap_hsmmc: omap_hsmmc_set_power cleanup

2015-07-07 Thread Andreas Fenkart
v2: - add empty omap_hsmmc_set_power in case CONFIG_REGULATOR is undefined Andreas Fenkart (2): mmc: omap_hsmmc: call omap_hsmmc_set_power directly mmc: omap_hsmmc: regulator automatically released by devm drivers/mmc/host/omap_hsmmc.c | 39 +-- 1 file

[PATCH v2 2/2] mmc: omap_hsmmc: regulator automatically released by devm

2015-07-07 Thread Andreas Fenkart
Signed-off-by: Andreas Fenkart afenk...@gmail.com --- drivers/mmc/host/omap_hsmmc.c | 12 1 file changed, 12 deletions(-) diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c index 806867b..ec1bcc7 100644 --- a/drivers/mmc/host/omap_hsmmc.c +++ b/drivers/mmc

[PATCH v2 1/2] mmc: omap_hsmmc: call omap_hsmmc_set_power directly

2015-07-07 Thread Andreas Fenkart
and exits, otherwise the fallback code is used. Signed-off-by: Andreas Fenkart afenk...@gmail.com --- drivers/mmc/host/omap_hsmmc.c | 37 ++--- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host

[PATCH 2/2] mmc: omap_hsmmc: regulator automatically released by devm

2015-07-07 Thread Andreas Fenkart
Signed-off-by: Andreas Fenkart afenk...@gmail.com --- drivers/mmc/host/omap_hsmmc.c | 12 1 file changed, 12 deletions(-) diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c index fe7cee5..9761e12 100644 --- a/drivers/mmc/host/omap_hsmmc.c +++ b/drivers/mmc

Re: [PATCH 1/3] mmc: host: omap_hsmmc: Fix DTO and DCRC handling

2015-06-20 Thread Andreas Fenkart
Hi Vignesh, 2015-06-16 12:37 GMT+02:00 Vignesh R vigne...@ti.com: From: Kishon Vijay Abraham I kis...@ti.com DTO/DCRC errors were not being informed to the mmc core since commit ae4bf788ee9b (mmc: omap_hsmmc: consolidate error report handling of HSMMC IRQ). This commit made sure 'end_trans'

Re: [PATCH 2/3] mmc: host: omap_hsmmc: Handle BADA, DEB and CEB interrupts

2015-06-20 Thread Andreas Fenkart
TESTED-BY 2015-06-16 12:37 GMT+02:00 Vignesh R vigne...@ti.com: Sometimes BADA, DEB or CEB error interrupts occur when sd card is unplugged during data transfer. These interrupts are currently ignored by the interrupt handler. But, this results in card not being recognised on subsequent

Re: [PATCH 3/3] mmc: host: omap_hsmmc: Add custom card detect irq handler

2015-06-20 Thread Andreas Fenkart
I haven't managed to produce a hang without this patch see also comments below 2015-06-16 12:37 GMT+02:00 Vignesh R vigne...@ti.com: Usually when there is an error in transfer, DTO/CTO or other error interrupts are raised. But if the card is unplugged in the middle of a data transfer, it is

[PATCH v2] mmc: sdio: add reset callback to bus operations

2015-04-23 Thread Andreas Fenkart
Some drivers schedule automatic hw resets. An example is mwifiex, which schedules a card reset if the command handler between driver and card firmware becomes out of sync Signed-off-by: Andreas Fenkart afenk...@gmail.com --- drivers/mmc/core/sdio.c | 7 +++ 1 file changed, 7 insertions

[PATCH] mmc: pwrseq: dt: example with reset clock and active low pin

2015-04-16 Thread Andreas Fenkart
Signed-off-by: Andreas Fenkart afenk...@gmail.com --- Documentation/devicetree/bindings/mmc/mmc-pwrseq-simple.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/mmc/mmc-pwrseq-simple.txt b/Documentation/devicetree/bindings/mmc/mmc-pwrseq

[PATCH] mmc: sdio: add reset callback to bus operations

2015-04-13 Thread Andreas Fenkart
Some drivers schedule automatic hw resets. An example is mwifiex, which schedules a card reset if the command handler between driver and card firmware becomes out of sync Signed-off-by: Andreas Fenkart afenk...@gmail.com --- drivers/mmc/core/sdio.c | 7 +++ 1 file changed, 7 insertions

[PATCH] ARM: OMAP2: HSMMC: explicit fields to declare cover/card detect pin

2015-03-20 Thread Andreas Fenkart
did that we had to go over all board files and set the new gpio_cod pin to -EINVAL. If we forget one board or some out-of-tree archicture forgets that the default '0' is used which is a valid pin number. Signed-off-by: Andreas Fenkart afenk...@gmail.com --- arch/arm/mach-omap2/hsmmc.c

Re: [PATCH 0/6] mmc: omap_hsmmc: simplify cover/card detect logic

2015-03-04 Thread Andreas Fenkart
2015-03-04 6:31 GMT+01:00 NeilBrown ne...@suse.de: On Tue, 3 Mar 2015 13:28:12 +0100 Andreas Fenkart afenk...@gmail.com wrote: While cover detect is only used by one platform (rx51), it complicates the card detect logic. By separating the code paths they both become easier to understand

[PATCH 3/6] mmc: omap_hsmmc: use distinctive code paths for cover / card detect logic

2015-03-03 Thread Andreas Fenkart
there is not much code sharing between cover and card detect, it only increases confusion. By splitting, both will be simplified in a followup patch. Signed-off-by: Andreas Fenkart afenk...@gmail.com --- drivers/mmc/host/omap_hsmmc.c | 56 +-- 1 file changed, 38

[PATCH 4/6] ARM: OMAP2: HSMMC: platform_data: explicit gpio_cover / gpio_cd fields

2015-03-03 Thread Andreas Fenkart
over all board files and set the new gpio_cover pin to -EINVAL. That would be dangerous since '0' is a valid pin number. FYI: only board-rx51 uses cover_only detection Signed-off-by: Andreas Fenkart afenk...@gmail.com --- arch/arm/mach-omap2/hsmmc.c | 33

[PATCH 5/6] mmc: omap_hsmmc: simplify card/cover detect isr

2015-03-03 Thread Andreas Fenkart
strip the card dectet logic from cover detect isr and vice versa the generic mmc_gpio_cd_irqt isr, uses 200ms on removal/insertion, hence that should be fine here as well Signed-off-by: Andreas Fenkart afenk...@gmail.com --- drivers/mmc/host/omap_hsmmc.c | 27 +++ 1 file

[PATCH 2/6] mmc: omap_hsmmc: use slot-gpio functions to manage read-only pin directly

2015-03-03 Thread Andreas Fenkart
The indirection via omap_hsmmc_get_ro and omap_hsmmc_get_wp is redundant. Also dropped setting gpio_wp to EINVAL since platform date is read-only Untested: no device with ro pin was available, but change is fairly simple Signed-off-by: Andreas Fenkart afenk...@gmail.com --- drivers/mmc/host

[PATCH 0/6] mmc: omap_hsmmc: simplify cover/card detect logic

2015-03-03 Thread Andreas Fenkart
CONFIG_MACH_TOUCHBOOK=y CONFIG_MACH_OMAP_3430SDP=y CONFIG_MACH_NOKIA_N810=y CONFIG_MACH_NOKIA_N810_WIMAX=y CONFIG_MACH_NOKIA_N8X0=y CONFIG_MACH_NOKIA_RX51=y CONFIG_MACH_CM_T35=y CONFIG_MACH_CM_T3517=y CONFIG_MACH_CM_T3730=y CONFIG_MACH_SBC3530=y CONFIG_MACH_TI8168EVM=y CONFIG_MACH_TI8148EVM=y Andreas

[PATCH 1/6] mmc: omap_hsmmc: remove unused fields from struct omap_hsmmc_host

2015-03-03 Thread Andreas Fenkart
addon to: 09108968b7b72b6083a3bfc8f8259a74ed57255e mmc: omap_hsmmc: remove prepare/complete system suspend support Signed-off-by: Andreas Fenkart afenk...@gmail.com --- drivers/mmc/host/omap_hsmmc.c | 4 1 file changed, 4 deletions(-) diff --git a/drivers/mmc/host/omap_hsmmc.c b

[PATCH 6/6] mmc: omap_hsmmc: use generic slot-gpio isr to manage card detect pin

2015-03-03 Thread Andreas Fenkart
Signed-off-by: Andreas Fenkart afenk...@gmail.com --- drivers/mmc/host/omap_hsmmc.c | 13 - 1 file changed, 13 deletions(-) diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c index 4f6fbe5..0c3368e 100644 --- a/drivers/mmc/host/omap_hsmmc.c +++ b/drivers/mmc

Re: [RFC PATCH 2/3] mmc: omap_hsmmc: add tuning support

2014-11-14 Thread Andreas Fenkart
2014-11-13 13:56 GMT+01:00 Kishon Vijay Abraham I kis...@ti.com: From: Balaji T K balaj...@ti.com MMC tuning procedure is required to support SD card UHS1-SDR104 mode and EMMC HS200 mode. The tuning function omap_execute_tuning() will only be called by the MMC/SD core if the corresponding

[PATCH v4 10/10] omap_hsmmc: remove unused slot_id parameter

2014-11-08 Thread Andreas Fenkart
omap_hsmmc only supports one slot. So slot id is always zero, and slot id was never used in the callbacks anyway Acked-by: Tony Lindgren t...@atomide.com Signed-off-by: Andreas Fenkart afenk...@gmail.com --- arch/arm/mach-omap2/board-rx51-peripherals.c | 2 +- arch/arm/mach-omap2/hsmmc.c

[PATCH v4 09/10] omap_hsmmc: Remove unnecessary callbacks from platform data

2014-11-08 Thread Andreas Fenkart
Signed-off-by: Andreas Fenkart afenk...@gmail.com --- drivers/mmc/host/omap_hsmmc.c| 75 +++- include/linux/platform_data/hsmmc-omap.h | 18 2 files changed, 45 insertions(+), 48 deletions(-) diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host

[PATCH v4 00/10] ARM: OMAP1/2+: MMC: separate platform data for mmc and mmc hs driver

2014-11-08 Thread Andreas Fenkart
CONFIG_MACH_NOKIA_N810_WIMAX=y CONFIG_MACH_NOKIA_N8X0=y CONFIG_MACH_NOKIA_RX51=y CONFIG_MACH_CM_T35=y CONFIG_MACH_CM_T3517=y CONFIG_MACH_CM_T3730=y CONFIG_MACH_SBC3530=y CONFIG_MACH_TI8168EVM=y CONFIG_MACH_TI8148EVM=y Andreas Fenkart (10): ARM: OMAP2: MMC: include mmc-omap platform header directly ARM: OMAP1/2

[PATCH v4 03/10] omap_hsmmc: remove unused fields in platform_data

2014-11-08 Thread Andreas Fenkart
-by: Andreas Fenkart afenk...@gmail.com --- arch/arm/mach-omap2/hsmmc.c | 14 -- arch/arm/mach-omap2/hsmmc.h | 6 -- include/linux/platform_data/hsmmc-omap.h | 19 --- 3 files changed, 39 deletions(-) diff --git a/arch/arm/mach-omap2/hsmmc.c b

[PATCH v4 04/10] omap_hsmmc: remove un-initialized callbacks from platform data

2014-11-08 Thread Andreas Fenkart
these callbacks are not set, probably legacy omap 1/2 features Acked-by: Tony Lindgren t...@atomide.com Signed-off-by: Andreas Fenkart afenk...@gmail.com --- drivers/mmc/host/omap_hsmmc.c| 15 +-- include/linux/platform_data/hsmmc-omap.h | 9 - 2 files changed, 1

[PATCH v4 05/10] omap_hsmmc: remove never read power_saving field in omap2_hsmmc_info

2014-11-08 Thread Andreas Fenkart
these fields are never read, probably an unimplemented feature or superseded by pm_runtime Acked-by: Tony Lindgren t...@atomide.com Signed-off-by: Andreas Fenkart afenk...@gmail.com --- arch/arm/mach-omap2/board-rx51-peripherals.c | 2 -- arch/arm/mach-omap2/hsmmc.h | 1 - 2

[PATCH v4 02/10] ARM: OMAP1/2+: MMC: separate platform data for mmc and mmc hs driver

2014-11-08 Thread Andreas Fenkart
-by: Tony Lindgren t...@atomide.com Signed-off-by: Andreas Fenkart afenk...@gmail.com --- arch/arm/mach-omap2/hsmmc.c| 26 ++-- arch/arm/mach-omap2/omap_hwmod_2430_data.c | 4 +- .../mach-omap2/omap_hwmod_33xx_43xx_ipblock_data.c | 8 +- arch/arm/mach-omap2

[PATCH v4 06/10] omap_hsmmc: remove unused get_context_loss_count callback

2014-11-08 Thread Andreas Fenkart
trigger of this callback has been removed in 0a82e06e6183 Acked-by: Tony Lindgren t...@atomide.com Signed-off-by: Andreas Fenkart afenk...@gmail.com --- arch/arm/mach-omap2/hsmmc.c | 12 include/linux/platform_data/hsmmc-omap.h | 3 --- 2 files changed, 15 deletions

[PATCH v4 01/10] ARM: OMAP2: MMC: include mmc-omap platform header directly

2014-11-08 Thread Andreas Fenkart
anywhere, checked with grep. Signed-off-by: Andreas Fenkart afenk...@gmail.com --- arch/arm/mach-omap2/board-n8x0.c| 2 ++ arch/arm/mach-omap2/hsmmc.c | 3 ++- arch/arm/mach-omap2/mmc.h | 10 -- arch/arm/mach

[PATCH v4 07/10] omap_hsmmc: remove unnecessary omap_hsmmc_slot_data indirection

2014-11-08 Thread Andreas Fenkart
the platform data struct. Removed since slot multiplexing is an un-implemented feature Acked-by: Tony Lindgren t...@atomide.com Signed-off-by: Andreas Fenkart afenk...@gmail.com --- arch/arm/mach-omap2/hsmmc.c | 88 drivers/mmc/host/omap_hsmmc.c| 175

[PATCH v4 08/10] omap_hsmmc: pass mmc_priv struct to gpio init / free

2014-11-08 Thread Andreas Fenkart
this is needed when installing callbacks in the host struct and not in the platform data, e.g. cover detect irq should be stored in omap_hsmmc_host and not platform data Acked-by: Tony Lindgren t...@atomide.com Signed-off-by: Andreas Fenkart afenk...@gmail.com --- drivers/mmc/host/omap_hsmmc.c

[PATCH v3 3/3] ARM: OMAP2+: use separate platform data for omap3 and omap 1/2 driver

2014-10-04 Thread Andreas Fenkart
(0) #define OMAP_HSMMC_BROKEN_MULTIBLOCK_READ BIT(1) #define OMAP_HSMMC_SWAKEUP_MISSING BIT(2) Signed-off-by: Andreas Fenkart afenk...@gmail.com diff --git a/arch/arm/mach-omap2/hsmmc.c b/arch/arm/mach-omap2/hsmmc.c index 73e28ac..9edd759 100644 --- a/arch/arm/mach-omap2/hsmmc.c

[PATCH v3 0/3] ARM: OMAP2+: MMC: use separate platform data for omap3 and omap 1/2 driver

2014-10-04 Thread Andreas Fenkart
=y CONFIG_MACH_CM_T3517=y CONFIG_MACH_CM_T3730=y CONFIG_MACH_SBC3530=y CONFIG_MACH_TI8168EVM=y CONFIG_MACH_TI8148EVM=y - dropped all patches simplifying the hsmmc-omap platform struct, will resubmit once the platform data split is successful Andreas Fenkart (3): ARM: OMAP2

[PATCH v3 2/3] ARM: OMAP2+: include mmc-omap platform directly in hwmod data files

2014-10-04 Thread Andreas Fenkart
When splitting platform data of omap mmc/hsmmc driver it will allow to check which hwomod uses easily by looking at which header is included Signed-off-by: Andreas Fenkart afenk...@gmail.com diff --git a/arch/arm/mach-omap2/board-n8x0.c b/arch/arm/mach-omap2/board-n8x0.c index aead77a..fa70d1c

[PATCH v3 1/3] ARM: OMAP2+: remove unused defines from mach-omap2/mmc header

2014-10-04 Thread Andreas Fenkart
Signed-off-by: Andreas Fenkart afenk...@gmail.com diff --git a/arch/arm/mach-omap2/mmc.h b/arch/arm/mach-omap2/mmc.h index 0cd4b08..ea4fddf 100644 --- a/arch/arm/mach-omap2/mmc.h +++ b/arch/arm/mach-omap2/mmc.h @@ -2,18 +2,6 @@ #include linux/platform_data/mmc-omap.h #define OMAP24XX_NR_MMC

[PATCH v2 3/9] omap_hsmmc: remove un-initialized callbacks from platform data

2014-09-29 Thread Andreas Fenkart
these callbacks are not set, probably legacy omap 1/2 features Signed-off-by: Andreas Fenkart afenk...@gmail.com diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c index 5f2b5b7..f68ac1a 100644 --- a/drivers/mmc/host/omap_hsmmc.c +++ b/drivers/mmc/host/omap_hsmmc.c

[PATCH v2 2/9] omap_hsmmc: remove unused fields in platform_data

2014-09-29 Thread Andreas Fenkart
CONFIG_MACH_CM_T3517=y CONFIG_MACH_CM_T3730=y CONFIG_MACH_SBC3530=y Signed-off-by: Andreas Fenkart afenk...@gmail.com diff --git a/arch/arm/mach-omap2/hsmmc.c b/arch/arm/mach-omap2/hsmmc.c index e3555f2..1c10402 100644 --- a/arch/arm/mach-omap2/hsmmc.c +++ b/arch/arm/mach-omap2/hsmmc.c @@ -262,9

[PATCH v2 5/9] omap_hsmmc: remove unused get_context_loss_count callback

2014-09-29 Thread Andreas Fenkart
trigger of this callback has been removed in 0a82e06e6183 Signed-off-by: Andreas Fenkart afenk...@gmail.com diff --git a/arch/arm/mach-omap2/hsmmc.c b/arch/arm/mach-omap2/hsmmc.c index 1c10402..312f13d 100644 --- a/arch/arm/mach-omap2/hsmmc.c +++ b/arch/arm/mach-omap2/hsmmc.c @@ -32,17 +32,6

[PATCH v2 0/9] unshare and simplify omap_hsmmc platform struct

2014-09-29 Thread Andreas Fenkart
CONFIG_MACH_SBC3530=y - reorganized and added more patches, hence no blank ack added Andreas Fenkart (9): omap_hsmmc: use separate platform data for ompa3 and omap 1/2 driver omap_hsmmc: remove unused fields in platform_data omap_hsmmc: remove un-initialized callbacks from platform data

[PATCH v2 9/9] omap_hsmmc: remove unused slot_id parameter

2014-09-29 Thread Andreas Fenkart
omap_hsmmc only supports one slot. So slot id is always zero, and slot id is never used in the callbacks Signed-off-by: Andreas Fenkart afenk...@gmail.com diff --git a/arch/arm/mach-omap2/board-rx51-peripherals.c b/arch/arm/mach-omap2/board-rx51-peripherals.c index 0a8ac84..3d5040f 100644

[PATCH v2 7/9] omap_hsmmc: pass mmc_priv struct to gpio init / free

2014-09-29 Thread Andreas Fenkart
this is needed when installing callbacks in the host struct and not in the platform data, e.g. cover detect irq should be stored in omap_hsmmc_host and not platform data Signed-off-by: Andreas Fenkart afenk...@gmail.com diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c

[PATCH v2 4/9] omap_hsmmc: remove un-ready power_saving field in omap2_hsmmc_info

2014-09-29 Thread Andreas Fenkart
these fields are never read, probably an unimplemented feature or superseded by pm_runtime Signed-off-by: Andreas Fenkart afenk...@gmail.com diff --git a/arch/arm/mach-omap2/board-rx51-peripherals.c b/arch/arm/mach-omap2/board-rx51-peripherals.c index ddfc8df..0a8ac84 100644 --- a/arch/arm/mach

[PATCH v2 6/9] omap_hsmmc: remove unnecessary omap_hsmmc_slot_data indirection

2014-09-29 Thread Andreas Fenkart
the platform data struct. Removed since slot support is an un-implemented feature Signed-off-by: Andreas Fenkart afenk...@gmail.com diff --git a/arch/arm/mach-omap2/hsmmc.c b/arch/arm/mach-omap2/hsmmc.c index 312f13d..a535cd3 100644 --- a/arch/arm/mach-omap2/hsmmc.c +++ b/arch/arm/mach-omap2/hsmmc.c

[PATCH v2 1/9] omap_hsmmc: use separate platform data for ompa3 and omap 1/2 driver

2014-09-29 Thread Andreas Fenkart
in a separate header file not touched by this patch Signed-off-by: Andreas Fenkart afenk...@gmail.com diff --git a/arch/arm/mach-omap2/hsmmc.c b/arch/arm/mach-omap2/hsmmc.c index 07d4c7b..e3555f2 100644 --- a/arch/arm/mach-omap2/hsmmc.c +++ b/arch/arm/mach-omap2/hsmmc.c @@ -47,7 +47,7 @@ static void

[PATCH v2 8/9] omap_hsmmc: Remove unnecessary callbacks from platform data

2014-09-29 Thread Andreas Fenkart
These callbacks are set during driver probe and not from the platform init, -- evtl. they had been for oamp 1/2 -- for omap3 they are local functions of the driver. These indirection could be dropped altogether in favor of regular function calls TODO Signed-off-by: Andreas Fenkart afenk

[PATCH 0/6] unshare and simplify omap_hsmmc platform struct

2014-09-22 Thread Andreas Fenkart
mmci and omap_hsmmc share very little fields in the platform struct. unsharing significantly simplifies the omap_hsmmc driver Andreas Fenkart (6): omap_hsmmc: unshare platform data struct with mmci driver omap_hsmmc: remove unused callbacks from platform data struct omap_hsmmc: remove

[PATCH 2/6] omap_hsmmc: remove unused callbacks from platform data struct

2014-09-22 Thread Andreas Fenkart
driver never references these fields Signed-off-by: Andreas Fenkart afenk...@gmail.com --- arch/arm/mach-omap2/hsmmc.c | 9 - arch/arm/mach-omap2/hsmmc.h | 4 drivers/mmc/host/omap_hsmmc.c| 9 - include/linux/platform_data/hsmmc-omap.h

[PATCH 5/6] omap_hsmmc: remove un-initialized callbacks from platform data

2014-09-22 Thread Andreas Fenkart
Signed-off-by: Andreas Fenkart afenk...@gmail.com --- drivers/mmc/host/omap_hsmmc.c| 15 +-- include/linux/platform_data/hsmmc-omap.h | 8 2 files changed, 1 insertion(+), 22 deletions(-) diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c

[PATCH 3/6] omap_hsmmc: remove unused fields in platform_data

2014-09-22 Thread Andreas Fenkart
Signed-off-by: Andreas Fenkart afenk...@gmail.com --- arch/arm/mach-omap2/hsmmc.c | 13 - arch/arm/mach-omap2/hsmmc.h | 5 - include/linux/platform_data/hsmmc-omap.h | 24 3 files changed, 42 deletions(-) diff --git a/arch/arm

[PATCH 4/6] omap_hsmmc: remove unused get_context_loss_count callback

2014-09-22 Thread Andreas Fenkart
Signed-off-by: Andreas Fenkart afenk...@gmail.com --- arch/arm/mach-omap2/hsmmc.c | 12 include/linux/platform_data/hsmmc-omap.h | 3 --- 2 files changed, 15 deletions(-) diff --git a/arch/arm/mach-omap2/hsmmc.c b/arch/arm/mach-omap2/hsmmc.c index 2f202bf..9ed9f70

[PATCH 6/6] omap_hsmmc: remove un-initialized get_cover_state callback

2014-09-22 Thread Andreas Fenkart
Signed-off-by: Andreas Fenkart afenk...@gmail.com --- arch/arm/mach-omap2/hsmmc.c | 3 -- arch/arm/mach-omap2/hsmmc.h | 1 - drivers/mmc/host/omap_hsmmc.c| 83 ++-- include/linux/platform_data/hsmmc-omap.h | 10 4 files

[PATCH 1/6] omap_hsmmc: unshare platform data struct with mmci driver

2014-09-22 Thread Andreas Fenkart
that they are set by the driver during it's probe function typical example are card detect / read only detect callbacks Signed-off-by: Andreas Fenkart afenk...@gmail.com --- arch/arm/mach-omap2/hsmmc.c| 24 ++-- arch/arm/mach-omap2/mmc.h | 6 +- .../mach

Re: [PATCH v14 1/6] mmc: omap_hsmmc: Enable SDIO interrupt

2014-08-24 Thread Andreas Fenkart
Hi Florian 2014-08-24 10:26 GMT+02:00 Florian Vaussard florian.vauss...@epfl.ch: Hi Andreas, On 05/29/2014 10:28 AM, Andreas Fenkart wrote: There have been various patches floating around for enabling the SDIO IRQ for hsmmc, but none of them ever got merged. [...] For now, only support

[PATCH 0/3 resend] omap_hsmmc: reuse mmc/slot-gpio functions

2014-08-08 Thread Andreas Fenkart
].nonremovable = true; pdata-slots[0].no_regulator_off_init = true; } /Andreas Andreas Fenkart (3): omap_hsmmc: reuse mmc/slot-gpio for write protect detection omap_hsmmc: separate card_detect/cover detect logic omap_hsmmc: reuse mmc

[PATCH 1/3 resend] omap_hsmmc: reuse mmc/slot-gpio for write protect detection

2014-08-08 Thread Andreas Fenkart
Signed-off-by: Andreas Fenkart afenk...@gmail.com diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c index 2f944d7..1c10e6c 100644 --- a/drivers/mmc/host/omap_hsmmc.c +++ b/drivers/mmc/host/omap_hsmmc.c @@ -36,6 +36,7 @@ #include linux/mmc/host.h #include linux/mmc

[PATCH 3/3 resend] omap_hsmmc: reuse mmc/slot-gpio for card detect instead of open-coded version

2014-08-08 Thread Andreas Fenkart
Signed-off-by: Andreas Fenkart afenk...@gmail.com diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c index 1b9f279..25aafa6 100644 --- a/drivers/mmc/host/omap_hsmmc.c +++ b/drivers/mmc/host/omap_hsmmc.c @@ -231,15 +231,6 @@ struct omap_mmc_of_data { static void

[PATCH 2/3 resend] omap_hsmmc: separate card_detect/cover detect logic

2014-08-08 Thread Andreas Fenkart
assuming cover is the door like thing on cameras that needs to be closed after replacing sd cards. card detect is a gpio connected to sdio slot. in a follow up patch card_detect will be replaced by generic mmc/slot-gpio a git bisect patch Signed-off-by: Andreas Fenkart afenk...@gmail.com diff

[PATCH 0/3 resend] omap_hsmmc: reuse mmc/slot-gpio functions

2014-07-26 Thread Andreas Fenkart
].nonremovable = true; pdata-slots[0].no_regulator_off_init = true; } /Andreas Andreas Fenkart (3): omap_hsmmc: reuse mmc/slot-gpio for write protect detection omap_hsmmc: separate card_detect/cover detect logic omap_hsmmc: reuse mmc

[PATCH 3/3 resend] omap_hsmmc: reuse mmc/slot-gpio for card detect instead of open-coded version

2014-07-26 Thread Andreas Fenkart
Signed-off-by: Andreas Fenkart afenk...@gmail.com diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c index 1b9f279..25aafa6 100644 --- a/drivers/mmc/host/omap_hsmmc.c +++ b/drivers/mmc/host/omap_hsmmc.c @@ -231,15 +231,6 @@ struct omap_mmc_of_data { static void

[PATCH 1/3 resend] omap_hsmmc: reuse mmc/slot-gpio for write protect detection

2014-07-26 Thread Andreas Fenkart
Signed-off-by: Andreas Fenkart afenk...@gmail.com diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c index 2f944d7..1c10e6c 100644 --- a/drivers/mmc/host/omap_hsmmc.c +++ b/drivers/mmc/host/omap_hsmmc.c @@ -36,6 +36,7 @@ #include linux/mmc/host.h #include linux/mmc

[PATCH 2/3 resend] omap_hsmmc: separate card_detect/cover detect logic

2014-07-26 Thread Andreas Fenkart
assuming cover is the door like thing on cameras that needs to be closed after replacing sd cards. card detect is a gpio connected to sdio slot. in a follow up patch card_detect will be replaced by generic mmc/slot-gpio a git bisect patch Signed-off-by: Andreas Fenkart afenk...@gmail.com diff

[PATCH 1/3] omap_hsmmc: reuse mmc/slot-gpio for write protect detection

2014-07-18 Thread Andreas Fenkart
Signed-off-by: Andreas Fenkart afenk...@gmail.com diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c index 2f944d7..1c10e6c 100644 --- a/drivers/mmc/host/omap_hsmmc.c +++ b/drivers/mmc/host/omap_hsmmc.c @@ -36,6 +36,7 @@ #include linux/mmc/host.h #include linux/mmc

[PATCH 0/3] omap_hsmmc: reuse mmc/slot-gpio functions

2014-07-18 Thread Andreas Fenkart
; pdata-slots[0].no_regulator_off_init = true; } thanks, Andreas Andreas Fenkart (3): omap_hsmmc: reuse mmc/slot-gpio for write protect detection omap_hsmmc: separate card_detect/cover detect logic omap_hsmmc: reuse mmc/slot-gpio for card

[PATCH 2/3] omap_hsmmc: separate card_detect/cover detect logic

2014-07-18 Thread Andreas Fenkart
assuming cover is the door like thing on cameras that needs to be closed after replacing sd cards. card detect is a gpio connected to sdio slot. in a follow up patch card_detect will be replaced by generic mmc/slot-gpio a git bisect patch Signed-off-by: Andreas Fenkart afenk...@gmail.com diff

[PATCH 3/3] omap_hsmmc: reuse mmc/slot-gpio for card detect instead of open-coded version

2014-07-18 Thread Andreas Fenkart
Signed-off-by: Andreas Fenkart afenk...@gmail.com diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c index 1b9f279..25aafa6 100644 --- a/drivers/mmc/host/omap_hsmmc.c +++ b/drivers/mmc/host/omap_hsmmc.c @@ -231,15 +231,6 @@ struct omap_mmc_of_data { static void

Re: mwifiex card reset

2014-07-15 Thread Andreas Fenkart
2014-07-01 17:09 GMT+02:00 Doug Anderson diand...@chromium.org: +Olof who posted the patch that Yuvaraj referenced. On Tue, Jul 1, 2014 at 5:20 AM, Yuvaraj Cd yuvaraj.l...@gmail.com wrote: On Tue, Jul 1, 2014 at 12:27 PM, James Cameron qu...@laptop.org wrote: On Mon, Jun 30, 2014 at

Re: mwifiex card reset

2014-07-01 Thread Andreas Fenkart
Hi Bing, 2014-07-01 8:44 GMT+02:00 Bing Zhao bz...@marvell.com: [snip] Yes, a helper might be the best solution. It could even be a generic one, that just takes any number of clocks, reset GPIOs and regulators and takes care for sequencing them. However, we need to reference that helper from

Re: [PATCH v3 2/3] mmc: omap_hsmmc: Pin remux workaround to support SDIO interrupt on AM335x.

2014-06-30 Thread Andreas Fenkart
Hi, 2013-11-19 16:59 GMT+01:00 Balaji T K balaj...@ti.com: On Tuesday 19 November 2013 09:19 PM, Tony Lindgren wrote: * Balaji T K balaj...@ti.com [131118 08:23]: On Monday 18 November 2013 05:45 PM, Andreas Fenkart wrote: 2013/11/18 Michael Trimarchi mich...@amarulasolutions.com: On Mon

Re: mwifiex card reset

2014-06-29 Thread Andreas Fenkart
2014-06-28 9:23 GMT+02:00 Tony Lindgren t...@atomide.com: * James Cameron qu...@laptop.org [140628 08:24]: On Fri, Jun 27, 2014 at 04:39:42PM +0200, Andreas Fenkart wrote: I have an mwifiex module(sd8787) behind omap_hsmmc(am33xx-soc) The module is non-removable wired fix to soc. Now

mwifiex card reset

2014-06-27 Thread Andreas Fenkart
I have an mwifiex module(sd8787) behind omap_hsmmc(am33xx-soc) The module is non-removable wired fix to soc. Now the wifi module needs 2 clocks; one is a sleep clock the other used when not sleeping. While the sleep clock is fixed, @32 kHz, the system clock can be one out of several values, but

[PATCH v14 0/6] mmc: omap_hsmmc: Enable SDIO IRQ

2014-05-29 Thread Andreas Fenkart
runtime suspend, not handle the sdio irq itself Andreas Fenkart (6): mmc: omap_hsmmc: Enable SDIO interrupt mmc: omap_hsmmc: Extend debugfs by SDIO IRQ handling, runtime state mmc: omap_hsmmc: enable wakeup event for sdio OMAP4 mmc: omap_hsmmc: abort runtime suspend if pending sdio irq

[PATCH v14 5/6] mmc: omap_hsmmc: switch default/idle pinctrl states in runtime hooks

2014-05-29 Thread Andreas Fenkart
at least, we could switch to idle at any point in the suspend hook, only the default state needs to be set before writing to the irq registers or an IRQ might get lost. Acked-by: Balaji T K balaj...@ti.com Signed-off-by: Andreas Fenkart afenk...@gmail.com diff --git a/drivers/mmc/host/omap_hsmmc.c

[PATCH v14 3/6] mmc: omap_hsmmc: enable wakeup event for sdio OMAP4

2014-05-29 Thread Andreas Fenkart
From: Balaji T K balaj...@ti.com To detect sdio irqs properly without spurious events, OMAP4 needs IWE in CON and CTPL, CLKEXTFREE in HCTL to be set Tested-by: Andreas Fenkart afenk...@gmail.com Signed-off-by: Balaji T K balaj...@ti.com diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc

[PATCH v14 4/6] mmc: omap_hsmmc: abort runtime suspend if pending sdio irq detected

2014-05-29 Thread Andreas Fenkart
on the first register access. Acked-by: Balaji T K balaj...@ti.com Signed-off-by: Andreas Fenkart afenk...@gmail.com diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c index b8be438..2408ec9 100644 --- a/drivers/mmc/host/omap_hsmmc.c +++ b/drivers/mmc/host/omap_hsmmc.c

[PATCH v14 2/6] mmc: omap_hsmmc: Extend debugfs by SDIO IRQ handling, runtime state

2014-05-29 Thread Andreas Fenkart
Add SDIO IRQ entries to debugfs entry. Note that PSTATE shows current state of data lines, incl. SDIO IRQ pending Signed-off-by: Andreas Fenkart afenk...@gmail.com diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c index 129569d..332d3d2 100644 --- a/drivers/mmc/host

Re: [mmc:mmc-next 79/96] drivers/mmc/host/omap_hsmmc.c:1841:30: error: 'struct dev_pm_info' has no member named 'runtime_status'

2014-05-23 Thread Andreas Fenkart
2014-05-22 16:24 GMT+02:00 Tony Lindgren t...@atomide.com: * Chris Ball ch...@printf.net [140522 05:42]: Hi, On Thu, May 22 2014, Ulf Hansson wrote: I had a second look at Andreas Fenkart's patchset to enable SDIO irq for omap. Those needs an additional iteration, since there are

[PATCH v13 6/7] mmc: omap_hsmmc: switch default/idle pinctrl states in runtime hooks

2014-05-23 Thread Andreas Fenkart
at least, we could switch to idle at any point in the suspend hook, only the default state needs to be set before writing to the irq registers or an IRQ might get lost. Acked-by: Balaji T K balaj...@ti.com Signed-off-by: Andreas Fenkart afenk...@gmail.com diff --git a/drivers/mmc/host/omap_hsmmc.c

[PATCH v13 2/7] mmc: omap_hsmmc: Enable SDIO interrupt

2014-05-23 Thread Andreas Fenkart
://comments.gmane.org/gmane.linux.kernel.mmc/20446 Acked-by: Balaji T K balaj...@ti.com Signed-off-by: Andreas Fenkart afenk...@gmail.com Signed-off-by: Tony Lindgren t...@atomide.com diff --git a/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt b/Documentation/devicetree/bindings/mmc/ti

[PATCH v13 0/7] mmc: omap_hsmmc: Enable SDIO IRQ

2014-05-23 Thread Andreas Fenkart
Andreas Fenkart (7): mmc: omap_hsmmc: install dummy pm runtime hooks if !CONFIG_PM_RUNTIME mmc: omap_hsmmc: Enable SDIO interrupt mmc: omap_hsmmc: Extend debugfs by SDIO IRQ handling, runtime state mmc: omap_hsmmc: enable wakeup event for sdio OMAP4 mmc: omap_hsmmc: abort runtime suspend

[PATCH v13 7/7] mmc: omap_hsmmc: Pin remux workaround to support SDIO interrupt on AM335x

2014-05-23 Thread Andreas Fenkart
the pins by Tony Lindgren. Code contributions from Tony Lindgren and Balaji T K balaj...@ti.com Acked-by: Balaji T K balaj...@ti.com Signed-off-by: Andreas Fenkart afenk...@gmail.com Signed-off-by: Tony Lindgren t...@atomide.com diff --git a/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt b

[PATCH v11 2/6] mmc: omap_hsmmc: enable wakeup event for sdio OMAP4

2014-05-11 Thread Andreas Fenkart
To detect sdio irqs properly without spurious events, OMAP4 needs IWE in CON and CTPL, CLKEXTFREE in HCTL to be set Tested-by: Andreas Fenkart afenk...@gmail.com Signed-off-by: Balaji T K balaj...@ti.com diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c index edd53adc

[PATCH v11 1/6] mmc: omap_hsmmc: Enable SDIO interrupt

2014-05-11 Thread Andreas Fenkart
://comments.gmane.org/gmane.linux.kernel.mmc/20446 Acked-by: Balaji T K balaj...@ti.com Signed-off-by: Andreas Fenkart afenk...@gmail.com Signed-off-by: Tony Lindgren t...@atomide.com diff --git a/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt b/Documentation/devicetree/bindings/mmc/ti

[PATCH v11 0/6] mmc: omap_hsmmc: Enable SDIO IRQ

2014-05-11 Thread Andreas Fenkart
: - incorparated changes as suggested by reviewers - simplified workaround for am335x, gpio will now only wake the module from runtime suspend, not handle the sdio irq itself Andreas Fenkart (6): mmc: omap_hsmmc: Enable SDIO interrupt mmc: omap_hsmmc: enable wakeup event for sdio OMAP4 mmc

[PATCH v11 3/6] mmc: omap_hsmmc: Extend debugfs by SDIO IRQ handling, runtime state

2014-05-11 Thread Andreas Fenkart
Add SDIO IRQ entries to debugfs entry. Note that PSTATE shows current state of data lines, incl. SDIO IRQ pending Acked-by: Balaji T K balaj...@ti.com Signed-off-by: Andreas Fenkart afenk...@gmail.com diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c index 4ee4645

[PATCH v11 5/6] mmc: omap_hsmmc: switch default/idle pinctrl states in runtime hooks

2014-05-11 Thread Andreas Fenkart
at least, we could switch to idle at any point in the suspend hook, only the default state needs to be set before writing to the irq registers or an IRQ might get lost. Acked-by: Balaji T K balaj...@ti.com Signed-off-by: Andreas Fenkart afenk...@gmail.com diff --git a/drivers/mmc/host/omap_hsmmc.c

[PATCH v11 4/6] mmc: omap_hsmmc: abort runtime suspend if pending sdio irq detected

2014-05-11 Thread Andreas Fenkart
on the first register access. Acked-by: Balaji T K balaj...@ti.com Signed-off-by: Andreas Fenkart afenk...@gmail.com diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c index 1a9d31f..30365f5 100644 --- a/drivers/mmc/host/omap_hsmmc.c +++ b/drivers/mmc/host/omap_hsmmc.c

[PATCH v11 6/6] mmc: omap_hsmmc: Pin remux workaround to support SDIO interrupt on AM335x

2014-05-11 Thread Andreas Fenkart
the pins by Tony Lindgren. Code contributions from Tony Lindgren and Balaji T K balaj...@ti.com Acked-by: Balaji T K balaj...@ti.com Signed-off-by: Andreas Fenkart afenk...@gmail.com Signed-off-by: Tony Lindgren t...@atomide.com diff --git a/Documentation/devicetree/bindings/mmc/ti-omap-hsmmc.txt b

[PATCH v11 0/7] mmc: omap_hsmmc: Enable SDIO IRQ.

2014-05-08 Thread Andreas Fenkart
, not handle the sdio irq itself Andreas Fenkart (6): mmc: omap_hsmmc: compile fix for !CONFIG_OF build mmc: omap_hsmmc: Enable SDIO interrupt mmc: omap_hsmmc: Extend debugfs by SDIO IRQ handling, runtime state mmc: omap_hsmmc: abort runtime suspend if pending sdio irq detected mmc: omap_hsmmc

[PATCH v11 1/7] mmc: omap_hsmmc: compile fix for !CONFIG_OF build

2014-05-08 Thread Andreas Fenkart
Signed-off-by: Andreas Fenkart afenk...@gmail.com diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c index 8d07e2b..5042a15 100644 --- a/drivers/mmc/host/omap_hsmmc.c +++ b/drivers/mmc/host/omap_hsmmc.c @@ -1864,6 +1864,7 @@ static inline struct omap_mmc_platform_data

[PATCH v11 2/7] mmc: omap_hsmmc: Enable SDIO interrupt

2014-05-08 Thread Andreas Fenkart
://comments.gmane.org/gmane.linux.kernel.mmc/20446 Cc: Balaji T K balaj...@ti.com Signed-off-by: Andreas Fenkart afenk...@gmail.com Signed-off-by: Tony Lindgren t...@atomide.com diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c index 5042a15..f43a69e 100644 --- a/drivers

[PATCH v11 4/7] mmc: omap_hsmmc: Extend debugfs by SDIO IRQ handling, runtime state

2014-05-08 Thread Andreas Fenkart
Add SDIO IRQ entries to debugfs entry. Note that PSTATE shows current state of data lines, incl. SDIO IRQ pending Signed-off-by: Andreas Fenkart afenk...@gmail.com diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c index f76462d..14857d7 100644 --- a/drivers/mmc/host

[PATCH v11 3/7] mmc: omap_hsmmc: enable wakeup event for sdio OMAP4

2014-05-08 Thread Andreas Fenkart
From: Balaji T K balaj...@ti.com To detect sdio irqs properly without spurious events, OMAP4 needs IWE in CON and CTPL, CLKEXTFREE in HCTL to be set Signed-off-by: Balaji T K balaj...@ti.com diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c index f43a69e..f76462d 100644

[PATCH v11 7/7] mmc: omap_hsmmc: Pin remux workaround to support SDIO interrupt on AM335x

2014-05-08 Thread Andreas Fenkart
the pins by Tony Lindgren. Code contributions from Tony Lindgren and Balaji T K balaj...@ti.com Signed-off-by: Andreas Fenkart afenk...@gmail.com Signed-off-by: Tony Lindgren t...@atomide.com Conflicts: drivers/mmc/host/omap_hsmmc.c diff --git a/Documentation/devicetree/bindings/mmc/ti-omap

[PATCH v11 6/7] mmc: omap_hsmmc: switch default/idle pinctrl states in runtime hooks

2014-05-08 Thread Andreas Fenkart
at least, we could switch to idle at any point in the suspend hook, only the default state needs to be set before writing to the irq registers or an IRQ might get lost. Signed-off-by: Andreas Fenkart afenk...@gmail.com diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c index

Re: [PATCH v10 1/5] mmc: omap_hsmmc: Enable SDIO interrupt

2014-04-30 Thread Andreas Fenkart
Hi Andreas, 2014-04-30 14:23 GMT+02:00 Andreas Müller schnitzelt...@googlemail.com: On Mon, Apr 28, 2014 at 9:40 AM, Andreas Fenkart afenk...@gmail.com wrote: @@ -2201,11 +2346,16 @@ static int omap_hsmmc_suspend(struct device *dev) pm_runtime_get_sync(host-dev); if (!(host

[PATCH 0/5] mmc: omap_hsmmc: Enable SDIO IRQ.

2014-04-28 Thread Andreas Fenkart
- drop ti,swakeup-missing flag convert to comaptible section v3: - removed gpio_irq from platform_data v2: - incorparated changes as suggested by reviewers - simplified workaround for am335x, gpio will now only wake the module from runtime suspend, not handle the sdio irq itself Andreas Fenkart

  1   2   >