Re: [PATCH] ARM: dts: Add support for sbc-3xxx with cm-t3730

2013-12-18 Thread Igor Grinberg
On 12/17/13 21:31, Tony Lindgren wrote:
 * Igor Grinberg grinb...@compulab.co.il [131216 23:16]:
 On 12/16/13 21:17, Tony Lindgren wrote:
 * Igor Grinberg grinb...@compulab.co.il [131216 05:57]:
 On 12/13/13 21:22, Tony Lindgren wrote:

[...]

  
 I think we can drop the different memory sizes and
 let boot loader adjust the blob. This will make the list shorter:
 omap3-cm-t3x.dtsi- common to cm-t3x cpu boards
 omap3-cm-t3x30.dtsi  - common to cm-t3730 and cm-t3530
 omap3-cm-t3730.dtsi  - cm-t3730 specific
 omap3-cm-t3530.dtsi  - cm-t3530 specific
 omap3-cm-t3517.dtsi  - cm-t3517 specific
 omap3-sb-t35.dtsi- sb-t35 specific
 omap3-cb-t3.dtsi - cb-t3 specific
 omap3-sbc-t3730.dts  - sb-t35 with cm-t3730 and default memory size
 omap3-sbc-t3530.dts  - sb-t35 with cm-t3530 and default memory size
 omap3-sbc-t3517.dts  - sb-t35 with cm-t3517 and default memory size
 omap3-em-t3730.dts   - cb-t3 with cm-t3730 and default memory size
 omap3-em-t3530.dts   - cb-t3 with cm-t3530 and default memory size

 So what do you think?
  
 Makes sense to me. I've updated the patch below to use the following:
 
 omap3-cm-t3x30.dtsi   - common to cm-t3730 and cm-t3530
 omap3-cm-t3730.dts- cm-t3730 specific, should work on it's own too, not a 
 .dtsi
 omap3-sb-t35.dtsi - sb-t35 specific
 omap3-sbc-t3730.dts   - sb-t35 with cm-t3730 and default memory size
 
 So the only changes compared to your naming are to not use .dtsi
 extension for omap3-cm-t3730.dts, and I did not add omap3-cm-t3x.dtsi
 as I don't know the details.

Ok.

 
 It's probably best that you guys take over this patch from here and
 add omap3-cm-t3x30.dtsi if needed.

Ok.

 
 I got the basic stuff working for what I need right now for my router
 to work, which is MMC, both Ethernet controllers and wl12xx. So I'm
 not going to tweak this patch further. Of course having the battery
 charging working would be nice for a router to have a backup battery :)
 
 There are still some issues I've noticed:
 
 1. Removing and reinserting the wl12xx modules seems to kill the
WLAN
 
 2. Ethernet interfaces only come up if there's a cable connected

I see. Ok then, we'll try to figure those things out.

[...]

 + mmc2_pins: pinmux_mmc2_pins {
 + pinctrl-single,pins = 
 + 0x128 (PIN_INPUT_PULLUP | MUX_MODE0)/* 
 sdmmc2_clk.sdmmc2_clk */
 + 0x12a (PIN_INPUT_PULLUP | MUX_MODE0)/* 
 sdmmc2_cmd.sdmmc2_cmd */
 + 0x12c (PIN_INPUT_PULLUP | MUX_MODE0)/* 
 sdmmc2_dat0.sdmmc2_dat0 */
 + 0x12e (PIN_INPUT_PULLUP | MUX_MODE0)/* 
 sdmmc2_dat1.sdmmc2_dat1 */
 + 0x130 (PIN_INPUT_PULLUP | MUX_MODE0)/* 
 sdmmc2_dat2.sdmmc2_dat2 */
 + 0x132 (PIN_INPUT_PULLUP | MUX_MODE0)/* 
 sdmmc2_dat3.sdmmc2_dat3 */

 Here the following is missing:
 0x134 (PIN_OUTPUT | MUX_MODE1) /* sdmmc2_dat4.sdmmc2_dir_dat0 */

 That seems to be used for the wl12xx GPIO, so it's listed at
 wl12xx_gpio below.

 Yes, but only on cm-t3730 (and actually starting from revision 1.2),
 not cm-t3530...
 
 Sounds like that needs another set of .dts files, or patching in the
 bootloader. 

Yep, IMO, .dts will be better, as I think pinmux is something
the kernel should be aware of...

[...]

 8 --
 From: Tony Lindgren t...@atomide.com
 Date: Tue, 10 Dec 2013 15:03:34 -0800
 Subject: [PATCH] ARM: dts: Add support for sbc-3xxx with cm-t3730
 
 This adds support for CompuLab SBC-T3530, also known as cm-t3730:
 
 http://compulab.co.il/products/sbcs/sbc-t3530/
 
 It seems that with the sbc-3xxx mainboard is also used on
 SBC-T3517 and SBC-T3730 with just a different CPU module:
 
 http://compulab.co.il/products/sbcs/sbc-t3517/
 http://compulab.co.il/products/sbcs/sbc-t3730/
 
 So let's add a common omap3-sb-t35.dtsi and then separate SoC
 specific omap3-sbc-t3730.dts, omap3-sbc-t3530.dts and
 omap3-sbc-t3517.dts.
 
 I've tested this with SBC-T3730 as that's the only one I have.
 At least serial, both Ethernet controllers, MMC, and wl12xx WLAN
 work.
 
 Note that WLAN seems to be different for SBC-T3530. And SBC-T3517
 may need some changes for the EMAC Ethernet if that's used
 instead of the smsc911x.
 
 Cc: devicet...@vger.kernel.org
 Cc: Igor Grinberg grinb...@compulab.co.il
 Cc: Mike Rapoport m...@compulab.co.il
 Signed-off-by: Tony Lindgren t...@atomide.com

Acked-by: Igor Grinberg grinb...@compulab.co.il

This one looks great!
Really minor comments below (we can fix those later)

[...]

 diff --git a/arch/arm/boot/dts/omap3-cm-t3730.dts 
 b/arch/arm/boot/dts/omap3-cm-t3730.dts
 new file mode 100644
 index 000..80cf668
 --- /dev/null
 +++ b/arch/arm/boot/dts/omap3-cm-t3730.dts

[...]

 +mmc1 {
 + vmmc-supply = vmmc1;
 + vmmc_aux-supply = vsim;

vsim is not present in TPS65930...
can be just left empty or set to a fixed voltage regulator.

 + bus-width = 4;
 + pinctrl-names = default;
 + pinctrl-0 = mmc1_pins;
 +};

[...]

 diff 

Re: [PATCH V5 0/4] DRIVERS: IRQCHIP: Add support for crossbar IP

2013-12-18 Thread Sricharan R
Hi Thomas,

On Tuesday 03 December 2013 03:57 PM, Sricharan R wrote:
 Some socs have a large number of interrupts requests to service
 the needs of its many peripherals and subsystems. All of the interrupt
 requests lines from the subsystems are not needed at the same
 time, so they have to be muxed to the controllers appropriately.
 In such places a interrupt controllers are preceded by an
 IRQ CROSSBAR that provides flexibility in muxing the device interrupt
 requests to the controller inputs.
 
 This series models the peripheral interrupts that can be routed through
 the crossbar to the GIC as 'routable-irqs'. The routable irqs are added
 in a separate linear domain inside the GIC. The registered routable domain's
 callback are invoked as a part of the GIC's callback, which in turn should
 allocate a free irq line and configure the IP accordingly. So every peripheral
 in the dts files mentions the fixed crossbar number as its interrupt. A free
 gic line for that gets allocated and configured when the peripheral interrupts
 are mapped.
 
 The minimal crossbar driver to track and allocate free GIC lines and 
 configure the
 crossbar is added here, along with the DT bindings.
 
 V5:
Addressed a comment from Mark Rutland mark.rutl...@arm.com,
updated tags and rebased on 3.13-rc2
 
 V4:
Addressed a couple of comments and split the DTS file updates in to
a separate series.
 
 V3:
Addressed few more comments from Thomas Gleixner t...@linutronix.de
 
Rebased patches 3,4,5,7 which updates the DTS file on top of below branch
  
 git://git.kernel.org/pub/scm/linux/kernel/git/bcousson/linux-omap-dt.git
  for_3.13/dts
 
Rebased patches 1,2,6 on top of 3.12 mainline
Updated Commit tags
 
 V2:
Addressed Thomas Gleixner t...@linutronix.de comments and
Kumar Gala ga...@codeaurora.org
 
Split updating the DRA7.dtsi file for adding the routable-irqs
 
 Previous discussions that led to this is at
   https://lkml.org/lkml/2013/9/18/540
 
 The V1,V2,V3,V4 post of these patches is at
   [V1]  https://lkml.org/lkml/2013/9/30/283
   [V2]  http://www.spinics.net/lists/linux-omap/msg99540.html
   [V3]  http://www.kernelhub.org/?msg=356470p=2
   [V4]  http://www.spinics.net/lists/linux-doc/msg16726.html
 
 Sricharan R (4):
   DRIVERS: IRQCHIP: IRQ-GIC: Add support for routable irqs
   DRIVERS: IRQCHIP: CROSSBAR: Add support for Crossbar IP
   ARM: OMAP4+: Correct Wakeup-gen code to use physical irq number
   ARM: DRA: Enable Crossbar IP support for DRA7XX
 
  Documentation/devicetree/bindings/arm/gic.txt  |6 +
  .../devicetree/bindings/arm/omap/crossbar.txt  |   27 +++
  arch/arm/mach-omap2/Kconfig|1 +
  arch/arm/mach-omap2/omap-wakeupgen.c   |4 +-
  arch/arm/mach-omap2/omap4-common.c |2 +
  drivers/irqchip/Kconfig|8 +
  drivers/irqchip/Makefile   |1 +
  drivers/irqchip/irq-crossbar.c |  208 
 
  drivers/irqchip/irq-gic.c  |   81 +++-
  include/linux/irqchip/arm-gic.h|7 +-
  include/linux/irqchip/irq-crossbar.h   |   11 ++
  11 files changed, 343 insertions(+), 13 deletions(-)
  create mode 100644 Documentation/devicetree/bindings/arm/omap/crossbar.txt
  create mode 100644 drivers/irqchip/irq-crossbar.c
  create mode 100644 include/linux/irqchip/irq-crossbar.h
 

I have addressed all the comments on this series, can this be merged now ?

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


[PATCH] mfd: omap-usb-tll: Don't hold lock during pm_runtime_get/put_sync()

2013-12-18 Thread Roger Quadros
pm_runtime_get/put_sync() can sleep so don't hold spinlock while
calling them.

This patch prevents a BUG() when CONFIG_DEBUG_ATOMIC_SLEEP is enabled.
Bug is present in Kernel versions v3.9 onwards.

Reported-by: Tomi Valkeinen tomi.valkei...@ti.com
Signed-off-by: Roger Quadros rog...@ti.com
Tested-by: Tomi Valkeinen tomi.valkei...@ti.com
Cc: sta...@vger.kernel.org # 3.9+
---
 drivers/mfd/omap-usb-tll.c | 11 ++-
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/drivers/mfd/omap-usb-tll.c b/drivers/mfd/omap-usb-tll.c
index 0d946ae1..248004c 100644
--- a/drivers/mfd/omap-usb-tll.c
+++ b/drivers/mfd/omap-usb-tll.c
@@ -346,7 +346,9 @@ int omap_tll_init(struct usbhs_omap_platform_data *pdata)
for (i = 0; i  tll-nch; i++)
needs_tll |= omap_usb_mode_needs_tll(pdata-port_mode[i]);
 
+   spin_unlock(tll_lock);
pm_runtime_get_sync(tll_dev);
+   spin_lock(tll_lock);
 
if (needs_tll) {
void __iomem *base = tll-base;
@@ -398,9 +400,8 @@ int omap_tll_init(struct usbhs_omap_platform_data *pdata)
}
}
 
-   pm_runtime_put_sync(tll_dev);
-
spin_unlock(tll_lock);
+   pm_runtime_put_sync(tll_dev);
 
return 0;
 }
@@ -420,7 +421,9 @@ int omap_tll_enable(struct usbhs_omap_platform_data *pdata)
 
tll = dev_get_drvdata(tll_dev);
 
+   spin_unlock(tll_lock);
pm_runtime_get_sync(tll_dev);
+   spin_lock(tll_lock);
 
for (i = 0; i  tll-nch; i++) {
if (omap_usb_mode_needs_tll(pdata-port_mode[i])) {
@@ -438,7 +441,6 @@ int omap_tll_enable(struct usbhs_omap_platform_data *pdata)
}
 
spin_unlock(tll_lock);
-
return 0;
 }
 EXPORT_SYMBOL_GPL(omap_tll_enable);
@@ -464,9 +466,8 @@ int omap_tll_disable(struct usbhs_omap_platform_data *pdata)
}
}
 
-   pm_runtime_put_sync(tll_dev);
-
spin_unlock(tll_lock);
+   pm_runtime_put_sync(tll_dev);
 
return 0;
 }
-- 
1.8.3.2

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


Re: [PATCHv2 01/27] ARM: OMAP: remove DSS DT hack

2013-12-18 Thread Tomi Valkeinen
On 2013-12-18 09:12, Tomi Valkeinen wrote:

 Well yeah let's keep those separate still as at least Russell needed
 some more time with the legacy booting. The point we can drop the
 legacy booting for omap3 may still need to wait a bit, maybe even
 until v3.15 to keep things working.
 
 They can't be separate. Once I add DT support for a board, I have to
 remove the legacy support for that board. This patch removes legacy
 support for the boards that are converted in the series.
 
 If I don't remove the legacy support, both DT and legacy side will be
 ran, and both create the DSS devices...
 
 But, it's true that this patch removes the whole file, as all the boards
 currently there are converted. But if new boards are added to the DSS
 quirks, then I can't remove the file. So I'll change this patch to only
 remove the parts for the converted boards, not the whole file.
 
 But but... If I understand right, the plan is to remove all omap3 board
 files for the next merge window. I'm not totally familiar with the
 quirks system, but how should this be handled:
 
 omap3.dtsi will contain the SoC's DSS nodes. This means that DSS devices
 are created via DT code. But if the display (i.e. panels) for a
 particular omap3 board has not been converted to DT, we should still use
 the legacy DSS initialization. But the DSS is already initialized via DT.
 
 I guess I can set the status for all the DSS nodes to disabled in
 omap3.dtsi, and that should prevent DT code from creating the DSS
 devices. Then, each omap3-board.dts that has been converted to DSS DT,
 can override those to enabled.
 
 That way the DT code should not create DSS devices by default, and the
 quirks system would probably work fine.

I changed the DSS DT nodes to be disabled by default, and I think this
works nicely. It's actually better this way in any case, as we can leave
blocks like DSI out for boards that don't need it.

Also, I now remove the quirks only for the boards that are converted to
DT, not the whole dss-common.c file. So I think we can now add new
boards to dss-common.c, if and when there are ones that cannot be
converted to use DSS DT yet.

 Tomi




signature.asc
Description: OpenPGP digital signature


Re: [PATCH] mfd: omap-usb-tll: Don't hold lock during pm_runtime_get/put_sync()

2013-12-18 Thread Lee Jones
 pm_runtime_get/put_sync() can sleep so don't hold spinlock while
 calling them.
 
 This patch prevents a BUG() when CONFIG_DEBUG_ATOMIC_SLEEP is enabled.
 Bug is present in Kernel versions v3.9 onwards.
 
 Reported-by: Tomi Valkeinen tomi.valkei...@ti.com
 Signed-off-by: Roger Quadros rog...@ti.com
 Tested-by: Tomi Valkeinen tomi.valkei...@ti.com
 Cc: sta...@vger.kernel.org # 3.9+
 ---
  drivers/mfd/omap-usb-tll.c | 11 ++-
  1 file changed, 6 insertions(+), 5 deletions(-)
 
 diff --git a/drivers/mfd/omap-usb-tll.c b/drivers/mfd/omap-usb-tll.c
 index 0d946ae1..248004c 100644
 --- a/drivers/mfd/omap-usb-tll.c
 +++ b/drivers/mfd/omap-usb-tll.c
 @@ -346,7 +346,9 @@ int omap_tll_init(struct usbhs_omap_platform_data *pdata)
   for (i = 0; i  tll-nch; i++)
   needs_tll |= omap_usb_mode_needs_tll(pdata-port_mode[i]);
  
 + spin_unlock(tll_lock);
   pm_runtime_get_sync(tll_dev);
 + spin_lock(tll_lock);

This is pretty ugly. Can't you move it above the spin_lock() instead?

snip

   tll = dev_get_drvdata(tll_dev);
  
 + spin_unlock(tll_lock);
   pm_runtime_get_sync(tll_dev);
 + spin_lock(tll_lock);

Same here?

   for (i = 0; i  tll-nch; i++) {
   if (omap_usb_mode_needs_tll(pdata-port_mode[i])) {
 @@ -438,7 +441,6 @@ int omap_tll_enable(struct usbhs_omap_platform_data 
 *pdata)
   }
  
   spin_unlock(tll_lock);
 -

This doesn't belong in this patch and is now inconsistent with the
other functions in the driver.

   return 0;
  }
  EXPORT_SYMBOL_GPL(omap_tll_enable);
 @@ -464,9 +466,8 @@ int omap_tll_disable(struct usbhs_omap_platform_data 
 *pdata)
   }
   }
  
 - pm_runtime_put_sync(tll_dev);
 -
   spin_unlock(tll_lock);
 + pm_runtime_put_sync(tll_dev);
  
   return 0;
  }

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[RFC 3/5] usb: xhci-plat: enable async suspend/resume

2013-12-18 Thread Yuvaraj Kumar C D
From: Andrew Bresticker abres...@chromium.org

USB host controllers can take a significant amount of time to suspend
and resume, adding several hundred miliseconds to the kernel resume
time. Since the XHCI controller has no outside dependencies (other than
clocks, which are suspended late/resumed early), allow it to suspend and
resume asynchronously.

Signed-off-by: Andrew Bresticker abres...@chromium.org
Reviewed-by: Julius Werner jwer...@chromium.org
Signed-off-by: Yuvaraj Kumar C D yuvaraj...@samsung.com
---
 drivers/usb/host/xhci-plat.c |2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/usb/host/xhci-plat.c b/drivers/usb/host/xhci-plat.c
index 8abda5c..1bc1565 100644
--- a/drivers/usb/host/xhci-plat.c
+++ b/drivers/usb/host/xhci-plat.c
@@ -162,6 +162,8 @@ static int xhci_plat_probe(struct platform_device *pdev)
if (ret)
goto put_usb3_hcd;
 
+   device_enable_async_suspend(pdev-dev);
+
return 0;
 
 put_usb3_hcd:
-- 
1.7.9.5

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


Re: [PATCHv2 23/27] OMAPDSS: connector-dvi: Add DT support

2013-12-18 Thread Tomi Valkeinen
On 2013-12-17 17:15, Laurent Pinchart wrote:

 Either the driver is too specific or the binding is too generic, but
 having such a generic name for an omap specific driver seems wrong. Same
 for panel-dpi, svideo-connector, composite-video-connector and
 hdmi-connector,

 Hmm. Good point. I was thinking that the driver is only used on OMAP, but of
 course that's not true, the driver is there for all platforms if the kernel
 just happens to be compiled with the driver.

 And it's not just about those drivers you mention. The same issue is there
 for, say, ti,tpd12s015. I have an omapdss specific driver for that, but if
 some other platform uses the same chip, they'll have a driver for it also...

 Sigh. I wonder how this should be handled... The only solution that comes to
 my mind is to have all the compatible strings as ti, But that's not
 correct, as they are not TI components, but some are generic ones and some
 from another vendor.

 And even ti,... is not good, as there are other TI SoCs with other display
 drivers. So I'd need to prepend the compatible strings with omapdss,...,
 making the hardware components driver specific.

 The long term plan is to make the drivers generic (or implement the same
 driver for common display framework). But for now I need to have future
 proof DT bindings with omapdss specific drivers...
 
 I'll refrain from mentioning that the problem has been identified more than a 
 year ago. Oh, wait, I've metioned it, sorry :-D
 
 We really want to make drivers generic enough to be shared by multiple 
 display 
 controllers. I would vote for making the DT bindings generic now already, 
 which would be enough to buy some time to fix the problem properly. If we 
 start prepending driver-specific prefixes such as omapdss, to compatible 
 string we'll just make the mess even larger and reduce the incentive to fix 
 it. It would be the worst decision we could make.

Well... I think there are no good options here. I see the following options:

1. Add omapdss, or similar to compat strings in DT, and the same for
the drivers. This solves the issue, but then we'll have bad DT data,
although I see similar method already being used in some places. When we
have common drivers, we can remove the omapdss, strings from DT, but
we still need to keep them in the drivers to have backward compatibility.

2. Keep the compat strings generic in DT. This way we'll have correct DT
data, but if anyone happens to create a new driver with the same compat
string, things will break. omapdss can only be compiled for a kernel
with OMAP and ARM support, so it narrows the problematic drivers a bit.

3. Have correct DT data, but at init time, in omap arch code, go through
the DT data and change the compat strings for the display nodes to
include omapdss,. This way the drivers would only work for omap
platforms. Like a combination of 1. and 2. I'm not sure if the DT-code
allows this at the moment, though.

We could also now select option 2., and go for 3. later if someone else
creates a driver with the same compat string.

While I'm obviously not very impartial here, I do think that using
generic bindings for omapdss is not the worst possible case, as:

I'm very much dedicated to get CDF merged at some point, and I already
have been working on it for each revision.

I also think that even if the omap panel drivers are currently omap
specific, they are not very much so. I have been changing them over the
years to be more and more generic, and I have used them as a base for
CDF panel drivers. If some platform specific driver may have a generic
compat string, omap panel drivers are not the worst option.

I will look at the option 3., hopefully that will be possible and
everybody will be happy. Any other ideas appreciated.

 Tomi




signature.asc
Description: OpenPGP digital signature


[RFC 5/5] usb: dwc3: enable async suspend/resume

2013-12-18 Thread Yuvaraj Kumar C D
From: Andrew Bresticker abres...@chromium.org

In addition to enabling async suspend/resume on the xhci-plat device,
we must enable it for the dwc3 device (the parent of xhci-plat) in order
to make the full USB stack resume asynchronously.  Like the xhci-plat,
ehci-s5p, and ohci-exynos drivers, there are no outside dependencies
which would make resuming the dwc3 driver asynchronously unsafe.

Signed-off-by: Andrew Bresticker abres...@chromium.org
Reviewed-by: Julius Werner jwer...@chromium.org
Signed-off-by: Yuvaraj Kumar C D yuvaraj...@samsung.com
---
 drivers/usb/dwc3/core.c |2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
index 59bb8d2..9c8a273 100644
--- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c
@@ -586,6 +586,8 @@ static int dwc3_probe(struct platform_device *pdev)
 
pm_runtime_allow(dev);
 
+   device_enable_async_suspend(dev);
+
return 0;
 
 err3:
-- 
1.7.9.5

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


[RFC 4/5] usb: dwc3-exynos: enable async suspend/resume

2013-12-18 Thread Yuvaraj Kumar C D
From: Andrew Bresticker abres...@chromium.org

In addition to enabling async suspend/resume on the xhci-plat device,
we must enable it for the dwc3-exynos platform device in order to make
the full USB stack resume asynchronously.  Like the xhci-plat, ehci-s5p,
and ohci-exynos drivers, there are no outside dependencies which would
make resuming the dwc3-exynos driver asynchronously unsafe.

Signed-off-by: Andrew Bresticker abres...@chromium.org
Reviewed-by: Julius Werner jwer...@chromium.org
Signed-off-by: Yuvaraj Kumar C D yuvaraj...@samsung.com
---
 drivers/usb/dwc3/dwc3-exynos.c |2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/usb/dwc3/dwc3-exynos.c b/drivers/usb/dwc3/dwc3-exynos.c
index 8b20c70..57431b7 100644
--- a/drivers/usb/dwc3/dwc3-exynos.c
+++ b/drivers/usb/dwc3/dwc3-exynos.c
@@ -155,6 +155,8 @@ static int dwc3_exynos_probe(struct platform_device *pdev)
goto err2;
}
 
+   device_enable_async_suspend(dev);
+
return 0;
 
 err2:
-- 
1.7.9.5

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


[RFC 1/5] usb: ohci-exynos: enable async suspend/resume

2013-12-18 Thread Yuvaraj Kumar C D
From: Andrew Bresticker abres...@chromium.org

USB host controllers can take a significant amount of time to suspend
and resume, adding several hundred miliseconds to the kernel resume
time. Since the Exynos OHCI controller has no outside dependencies
(other than clocks, which are suspended late/resumed early), allow it to
suspend and resume asynchronously.

Signed-off-by: Andrew Bresticker abres...@chromium.org
Reviewed-by: Julius Werner jwer...@chromium.org
Signed-off-by: Yuvaraj Kumar C D yuvaraj...@samsung.com
---
 drivers/usb/host/ohci-exynos.c |2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/usb/host/ohci-exynos.c b/drivers/usb/host/ohci-exynos.c
index 68588d8..faad2bdc 100644
--- a/drivers/usb/host/ohci-exynos.c
+++ b/drivers/usb/host/ohci-exynos.c
@@ -137,6 +137,8 @@ skip_phy:
if (exynos_ohci-otg)
exynos_ohci-otg-set_host(exynos_ohci-otg, hcd-self);
 
+   device_enable_async_suspend(pdev-dev);
+
platform_set_drvdata(pdev, hcd);
 
exynos_ohci_phy_enable(pdev);
-- 
1.7.9.5

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


[RFC 2/5] usb: ehci-s5p: enable async suspend/resume

2013-12-18 Thread Yuvaraj Kumar C D
From: Andrew Bresticker abres...@chromium.org

USB host controllers can take a significant amount of time to suspend
and resume, adding several hundred miliseconds to the kernel resume
time. Since the Exynos EHCI controller has no outside dependencies
(other than clocks, which are suspended late/resumed early), allow it to
suspend and resume asynchronously.

Signed-off-by: Andrew Bresticker abres...@chromium.org
Reviewed-by: Julius Werner jwer...@chromium.org
Signed-off-by: Yuvaraj Kumar C D yuvaraj...@samsung.com
---
 drivers/usb/host/ehci-exynos.c |2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/usb/host/ehci-exynos.c b/drivers/usb/host/ehci-exynos.c
index f7ce8e2..e5125cd 100644
--- a/drivers/usb/host/ehci-exynos.c
+++ b/drivers/usb/host/ehci-exynos.c
@@ -165,6 +165,8 @@ skip_phy:
}
device_wakeup_enable(hcd-self.controller);
 
+   device_enable_async_suspend(pdev-dev);
+
platform_set_drvdata(pdev, hcd);
 
return 0;
-- 
1.7.9.5

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


Re: [PATCH V3] usb: musb: Fix unstable init of OTG_INTERFSEL.

2013-12-18 Thread Grazvydas Ignotas
On Wed, Dec 18, 2013 at 9:41 AM, Andreas Naumann d...@andin.de wrote:
 Am 17.12.2013 18:22, schrieb David Cohen:

 On Tue, Dec 17, 2013 at 05:48:33PM +0100, anaum...@ultratronik.de wrote:

 From: Andreas Naumann anaum...@ultratronik.de

 This is a hard to reproduce problem which leads to non-functional
 USB-OTG port in 0.1%-1% of all boots. Tracked it down to commit
 e25bec160158abe86c276d7d206264afc3646281, which introduces save/restore
 of OTG_INTERFSEL over suspend.
 Since the resume function is also called early in driver init, it uses a
 non-initialized value (which is 0 and a non-supported setting in DM37xx
 for INTERFSEL). Shortly after the correct value is set. Apparently this
 works most time, but not always.

 Fix it by not writing the value on runtime resume if it has not been
 initialized yet.

 Signed-off-by: Andreas Naumann anaum...@ultratronik.de
 ---
 Even though I find the implementation a bit awkward this should fix
 the issue without breaking anything else. Hope everyone is happy
 with this.

   drivers/usb/musb/omap2430.c | 6 +-
   1 file changed, 5 insertions(+), 1 deletion(-)

 diff --git a/drivers/usb/musb/omap2430.c b/drivers/usb/musb/omap2430.c
 index 4315d35..fbe2c08 100644
 --- a/drivers/usb/musb/omap2430.c
 +++ b/drivers/usb/musb/omap2430.c
 @@ -48,6 +48,7 @@ struct omap2430_glue {
 enum omap_musb_vbus_id_status status;
 struct work_struct  omap_musb_mailbox_work;
 struct device   *control_otghs;
 +   u8  initialized;
   };
   #define glue_to_musb(g)   platform_get_drvdata(g-musb)

 @@ -383,6 +384,7 @@ static int omap2430_musb_init(struct musb *musb)
 }

 musb_writel(musb-mregs, OTG_INTERFSEL, l);
 +   glue-initialized = 1;

 pr_debug(HS USB OTG: revision 0x%x, sysconfig 0x%02x, 
 sysstatus 0x%x, intrfsel 0x%x, simenable
 0x%x\n,
 @@ -509,6 +511,7 @@ static int omap2430_probe(struct platform_device
 *pdev)
 glue-dev   = pdev-dev;
 glue-musb  = musb;
 glue-status= OMAP_MUSB_UNKNOWN;
 +   glue-initialized   = 0;


 You don't need to do this. 'glue' was already allocated with kzalloc().


 ok




 if (np) {
 pdata = devm_kzalloc(pdev-dev, sizeof(*pdata),
 GFP_KERNEL);
 @@ -646,7 +649,8 @@ static int omap2430_runtime_resume(struct device
 *dev)

 if (musb) {
 omap2430_low_level_init(musb);
 -   musb_writel(musb-mregs, OTG_INTERFSEL,
 +   if(glue-initialized)


 Are you sure this is thread safe?
 If you're sending this patch it means runtime_resume can be called
 before omap2430_must_init(), but how about at the same time?

No, the problem is that omap2430_runtime_resume() is called _during_
omap2430_must_init(), when pm_runtime_get_sync() is called. We can't
read the initial register value before pm_runtime_get_sync() returns
because the hardware is not powered up, and from pm_runtime_get_sync()
omap2430_runtime_resume() is called, where the cached register value
is needed.

 You defined 'initialized' as u8 type, then read/write operations won't
 be atomic in ARM.

We would only have problems if runtime_suspend() and runtime_resume()
are called at the same time, can this really happed?

Grazvydas
--
To unsubscribe from this list: send the line unsubscribe linux-omap 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] pwm: core: Rearrange pwm lock.

2013-12-18 Thread Sourav Poddar
When tiecap is used as a module, then while doing a rmmod I
get the following dump.

root@am437x-evm:/# rmmod pwm_tiecap
[  219.539245]
[  219.540771] ==
[  219.546936] [ INFO: possible circular locking dependency detected ]
[  219.553192] 3.12.4-01557-g9921cde-dirty #134 Not tainted
[  219.558471] ---
[  219.564727] rmmod/1517 is trying to acquire lock:
[  219.569427]  (s_active#35){.+}, at: [c017ab00] 
sysfs_hash_and_remove+0x4c/0x8c
[  219.577239]
[  219.577239] but task is already holding lock:
[  219.583068]  (pwm_lock){+.+.+.}, at: [c0303598] pwmchip_remove+0x14/0xf8
[  219.589996]
[  219.589996] which lock already depends on the new lock.
[  219.589996]
[  219.598144]
[  219.598144] the existing dependency chain (in reverse order) is:
[  219.605590]
- #1 (pwm_lock){+.+.+.}:
[  219.609497][c00a2d1c] lock_acquire+0x9c/0x128
[  219.614746][c0639bc0] mutex_lock_nested+0x50/0x3dc
[  219.620391][c0303974] pwm_request_from_chip+0x38/0x6c
[  219.626312][c0303fe0] pwm_export_store+0x50/0x140
[  219.631896][c039aba8] dev_attr_store+0x18/0x24
[  219.637207][c017aff0] sysfs_write_file+0x16c/0x1a0
[  219.642883][c0119084] vfs_write+0xb0/0x188
[  219.647857][c0119478] SyS_write+0x3c/0x70
[  219.652770][c0014100] ret_fast_syscall+0x0/0x48
[  219.658172]
- #0 (s_active#35){.+}:
[  219.662353][c00a2778] __lock_acquire+0x1b28/0x1b70
[  219.667999][c00a2d1c] lock_acquire+0x9c/0x128
[  219.673248][c017c780] sysfs_addrm_finish+0xe8/0x158
[  219.678985][c017ab00] sysfs_hash_and_remove+0x4c/0x8c
[  219.684906][c017e224] remove_files+0x38/0x74
[  219.690063][c017e2a4] sysfs_remove_group+0x44/0x108
[  219.695800][c017e38c] sysfs_remove_groups+0x24/0x34
[  219.701538][c039bc2c] device_del+0xec/0x178
[  219.706604][c039bcc4] device_unregister+0xc/0x18
[  219.712097][c0303658] pwmchip_remove+0xd4/0xf8
[  219.717407][c039fdc4] platform_drv_remove+0x18/0x1c
[  219.723175][c039e6c4] __device_release_driver+0x70/0xc8
[  219.729248][c039eec8] driver_detach+0xb4/0xb8
[  219.734497][c039e4ec] bus_remove_driver+0x8c/0xd0
[  219.740081][c00abd2c] SyS_delete_module+0x118/0x22c
[  219.745819][c0014100] ret_fast_syscall+0x0/0x48
[  219.751220]
[  219.751220] other info that might help us debug this:
[  219.751220]
[  219.759216]  Possible unsafe locking scenario:
[  219.759216]
[  219.765106]CPU0CPU1
[  219.769622]
[  219.774139]   lock(pwm_lock);
[  219.777130]lock(s_active#35);
[  219.782897]lock(pwm_lock);
[  219.788391]   lock(s_active#35);
[  219.791656]
[  219.791656]  *** DEADLOCK ***
[  219.791656]
[  219.797546] 3 locks held by rmmod/1517:
[  219.801391]  #0:  (__lockdep_no_validate__){..}, at: [c039ee58] 
driver_detach+0x44/0xb8
[  219.810028]  #1:  (__lockdep_no_validate__){..}, at: [c039ee64] 
driver_detach+0x50/0xb8
[  219.818695]  #2:  (pwm_lock){+.+.+.}, at: [c0303598] 
pwmchip_remove+0x14/0xf8
[  219.826049]
[  219.826049] stack backtrace:
[  219.830413] CPU: 0 PID: 1517 Comm: rmmod Not tainted 
3.12.4-01557-g9921cde-dirty #134
[  219.838256] [c001cc98] (unwind_backtrace+0x0/0xf0) from [c0018124] 
(show_stack+0x10/0x14)
[  219.846771] [c0018124] (show_stack+0x10/0x14) from [c0636728] 
(dump_stack+0x74/0xb4)
[  219.854858] [c0636728] (dump_stack+0x74/0xb4) from [c06344e4] 
(print_circular_bug+0x284/0x2d8)
[  219.863830] [c06344e4] (print_circular_bug+0x284/0x2d8) from [c00a2778] 
(__lock_acquire+0x1b28/0x1b70)
[  219.873443] [c00a2778] (__lock_acquire+0x1b28/0x1b70) from [c00a2d1c] 
(lock_acquire+0x9c/0x128)
[  219.882476] [c00a2d1c] (lock_acquire+0x9c/0x128) from [c017c780] 
(sysfs_addrm_finish+0xe8/0x158)
[  219.891601] [c017c780] (sysfs_addrm_finish+0xe8/0x158) from [c017ab00] 
(sysfs_hash_and_remove+0x4c/0x8c)
[  219.901397] [c017ab00] (sysfs_hash_and_remove+0x4c/0x8c) from [c017e224] 
(remove_files+0x38/0x74)
[  219.910614] [c017e224] (remove_files+0x38/0x74) from [c017e2a4] 
(sysfs_remove_group+0x44/0x108)
[  219.919647] [c017e2a4] (sysfs_remove_group+0x44/0x108) from [c017e38c] 
(sysfs_remove_groups+0x24/0x34)
[  219.929260] [c017e38c] (sysfs_remove_groups+0x24/0x34) from [c039bc2c] 
(device_del+0xec/0x178)
[  219.938201] [c039bc2c] (device_del+0xec/0x178) from [c039bcc4] 
(device_unregister+0xc/0x18)
[  219.946899] [c039bcc4] (device_unregister+0xc/0x18) from [c0303658] 
(pwmchip_remove+0xd4/0xf8)
[  219.955841] [c0303658] (pwmchip_remove+0xd4/0xf8) from [c039fdc4] 
(platform_drv_remove+0x18/0x1c)
[  219.965057] [c039fdc4] (platform_drv_remove+0x18/0x1c) from [c039e6c4] 
(__device_release_driver+0x70/0xc8)
[  219.975006] [c039e6c4] (__device_release_driver+0x70/0xc8) from 

[PATCH 3/3] driver: pwmss: Disable stop clk bit during enable clock call.

2013-12-18 Thread Sourav Poddar
Writing to ecap register on second insmod crashes with an external
abort. This happens becuase the STOP_CLK bit remains set(from rmmod) 
during the second insmod thereby not allowing the clocks to get enabled.

So, we disable STOP clock bit while doing a clock enable.

Signed-off-by: Sourav Poddar sourav.pod...@ti.com
---
 drivers/pwm/pwm-tipwmss.c |2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/drivers/pwm/pwm-tipwmss.c b/drivers/pwm/pwm-tipwmss.c
index 3b119bc..4749866 100644
--- a/drivers/pwm/pwm-tipwmss.c
+++ b/drivers/pwm/pwm-tipwmss.c
@@ -40,6 +40,8 @@ u16 pwmss_submodule_state_change(struct device *dev, int set)
 
mutex_lock(info-pwmss_lock);
val = readw(info-mmio_base + PWMSS_CLKCONFIG);
+   if (set == PWMSS_ECAPCLK_EN)
+   val = ~PWMSS_ECAPCLK_STOP_REQ;
val |= set;
writew(val , info-mmio_base + PWMSS_CLKCONFIG);
mutex_unlock(info-pwmss_lock);
-- 
1.7.1

--
To unsubscribe from this list: send the line unsubscribe linux-omap 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] pwm: ti: Miscellaneous Fixes and cleanup for pwm.

2013-12-18 Thread Sourav Poddar
This patch series caters to the issue faced while using tiecap
as a module.

The patch fix lock dependency issue which leads to crash during rmmod. 
Also fixes the clock control register setup values during CLK EN call. 

Sourav Poddar (3):
  pwm: core: Rearrange pwm lock usage.
  driver: pwm: ti-ecap: Rmove duplicate put_sync call.
  driver: pwmss: Disable stop during Enable clock call..

 drivers/pwm/core.c|4 +++-
 drivers/pwm/pwm-tiecap.c  |1 -
 drivers/pwm/pwm-tipwmss.c |2 ++
 3 files changed, 5 insertions(+), 2 deletions(-)

--
To unsubscribe from this list: send the line unsubscribe linux-omap 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] driver: pwm: ti-ecap: Remove duplicate put_sync call.

2013-12-18 Thread Sourav Poddar
Remove duplicate 'pm_runtime_put_sync' in the remove path.

Signed-off-by: Sourav Poddar sourav.pod...@ti.com
---
 drivers/pwm/pwm-tiecap.c |1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

diff --git a/drivers/pwm/pwm-tiecap.c b/drivers/pwm/pwm-tiecap.c
index 4e5c3d1..032092c 100644
--- a/drivers/pwm/pwm-tiecap.c
+++ b/drivers/pwm/pwm-tiecap.c
@@ -279,7 +279,6 @@ static int ecap_pwm_remove(struct platform_device *pdev)
pwmss_submodule_state_change(pdev-dev.parent, PWMSS_ECAPCLK_STOP_REQ);
pm_runtime_put_sync(pdev-dev);
 
-   pm_runtime_put_sync(pdev-dev);
pm_runtime_disable(pdev-dev);
return pwmchip_remove(pc-chip);
 }
-- 
1.7.1

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


OMAP display subsystem - does it work?

2013-12-18 Thread Russell King - ARM Linux
In my continuing woes with having the OMAP boards I have produce output,
where things used to work on the LDP, they now do not.  And on the SDP4430
board, where things were detected, they're no longer detected.

I thought this was just a matter of adjusting the configuration, but it
seems there's much more wrong than just that - so I wasn't too worried.
Last night, I updated the configuration to ensure that the appropriate
connector configuration symbols were enabled (see the changelog in the
configuration seeds.)

All the time that stuff on OMAP gets broken and/or doesn't work (inspite
of repeated attempts at reporting problems - I've never seen the displays
on the SDP4430 board ever work with a mainline kernel in all the years
I've had the platform - but they have worked with the originally supplied
TI kernels) I really find myself not really caring very much about OMAP
and whether it works or not.

Quite honestly, I regard OMAP as nothing more than an overly complex toy
implementation rather than a serious architecture because of this kind
of stuff - unlike every other ARM platform where stuff like this just
works, OMAP stuff is always seems to be much harder to make work, and
more prone to stuff breaking.

So, here goes.  LDP3430:

OMAP DSS rev 2.0
omapdss DPI error: can't get VDDS_DSI regulator
omapfb omapfb: failed to connect default display
omapfb omapfb: failed to init overlay connections
omapfb omapfb: failed to setup omapfb
platform omapfb: Driver omapfb requests probe deferral

I don't see evidence of it being re-probed, but I do see this during boot
which implies that there's nothing there:

XIO:  fatal IO error 104 (Connection reset by peer) on X server :0.0
  after 0 requests (0 known processed) with 0 events remaining.



For the SDP4430, it used to detect the displays, even though nothing has
ever been displayed on them.  Now it just spits out this:

OMAP DSS rev 4.0
omapdss DSI error: can't get VDDS_DSI regulator
panel-dsi-cm panel-dsi-cm.0: Failed to connect to video source
omapfb omapfb: failed to connect default display
omapfb omapfb: failed to init overlay connections
omapfb omapfb: failed to setup omapfb
platform omapfb: Driver omapfb requests probe deferral
...
omapdss DSI error: failed to set complexio power state to 1
panel-dsi-cm panel-dsi-cm.0: failed to enable DSI
omapfb omapfb: Failed to enable display 'lcd'
omapfb omapfb: failed to initialize default display
omapfb omapfb: failed to setup omapfb

Configurations, build and boot logs are all on
http://www.arm.linux.org.uk/developer/build/
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] crypto: omap-sham: Fix Polling mode for larger blocks

2013-12-18 Thread Lokesh Vutla
Command tcrypt sec=1 mode=403 give the follwoing error for Polling
mode:
root@am335x-evm:/# insmod tcrypt.ko sec=1 mode=403
[...]

[  346.982754] test 15 ( 4096 byte blocks, 1024 bytes per update,   4 updates): 
  4352 opers/sec,  17825792 bytes/sec
[  347.992661] test 16 ( 4096 byte blocks, 4096 bytes per update,   1 updates): 
  7095 opers/sec,  29061120 bytes/sec
[  349.002667] test 17 ( 8192 byte blocks,   16 bytes per update, 512 updates):
[  349.010882] Unable to handle kernel NULL pointer dereference at virtual 
address 
[  349.020037] pgd = ddeac000
[  349.022884] [] *pgd=9dcb4831, *pte=, *ppte=
[  349.029816] Internal error: Oops: 17 [#1] PREEMPT SMP ARM
[  349.035482] Modules linked in: tcrypt(+)
[  349.039617] CPU: 0 PID: 1473 Comm: insmod Not tainted 
3.12.4-01566-g6279006-dirty #38
[  349.047832] task: dda91540 ti: ddcd2000 task.ti: ddcd2000
[  349.053517] PC is at omap_sham_xmit_dma+0x6c/0x238
[  349.058544] LR is at omap_sham_xmit_dma+0x38/0x238
[  349.063570] pc : [c04eb7cc]lr : [c04eb798]psr: 2013
[  349.063570] sp : ddcd3c78  ip :   fp : 9d8980b8
[  349.075610] r10:   r9 :   r8 : 
[  349.081090] r7 : 1000  r6 : dd898000  r5 : 0040  r4 : ddb10550
[  349.087935] r3 : 0004  r2 : 0010  r1 : 53100080  r0 : 
[  349.094783] Flags: nzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
[  349.102268] Control: 10c5387d  Table: 9deac019  DAC: 0015
[  349.108294] Process insmod (pid: 1473, stack limit = 0xddcd2248)

[...]

This is because polling_mode is not enabled for ctx without FLAGS_FINUP.

For polling mode the bufcnt is made 0 unconditionally. But it should be made 0
only if it is a final update or a total is not zero(This condition is similar
to what is done in DMA case). Because of this wrong hashes are produced.

Fixing the same.

Signed-off-by: Lokesh Vutla lokeshvu...@ti.com
---
 drivers/crypto/omap-sham.c |   12 +---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/drivers/crypto/omap-sham.c b/drivers/crypto/omap-sham.c
index e45aaaf..a47094a 100644
--- a/drivers/crypto/omap-sham.c
+++ b/drivers/crypto/omap-sham.c
@@ -789,10 +789,13 @@ static int omap_sham_update_cpu(struct omap_sham_dev *dd)
dev_dbg(dd-dev, cpu: bufcnt: %u, digcnt: %d, final: %d\n,
ctx-bufcnt, ctx-digcnt, final);
 
-   bufcnt = ctx-bufcnt;
-   ctx-bufcnt = 0;
+   if (final || (ctx-bufcnt == ctx-buflen  ctx-total)) {
+   bufcnt = ctx-bufcnt;
+   ctx-bufcnt = 0;
+   return omap_sham_xmit_cpu(dd, ctx-buffer, bufcnt, final);
+   }
 
-   return omap_sham_xmit_cpu(dd, ctx-buffer, bufcnt, final);
+   return 0;
 }
 
 static int omap_sham_update_dma_stop(struct omap_sham_dev *dd)
@@ -1103,6 +1106,9 @@ static int omap_sham_update(struct ahash_request *req)
return 0;
}
 
+   if (dd-polling_mode)
+   ctx-flags |= BIT(FLAGS_CPU);
+
return omap_sham_enqueue(req, OP_UPDATE);
 }
 
-- 
1.7.9.5

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


Re: OMAP display subsystem - does it work?

2013-12-18 Thread Tomi Valkeinen
On 2013-12-18 14:00, Russell King - ARM Linux wrote:

 So, here goes.  LDP3430:
 
 OMAP DSS rev 2.0
 omapdss DPI error: can't get VDDS_DSI regulator
 omapfb omapfb: failed to connect default display
 omapfb omapfb: failed to init overlay connections
 omapfb omapfb: failed to setup omapfb
 platform omapfb: Driver omapfb requests probe deferral
 
 I don't see evidence of it being re-probed, but I do see this during boot
 which implies that there's nothing there:
 
 XIO:  fatal IO error 104 (Connection reset by peer) on X server :0.0
   after 0 requests (0 known processed) with 0 events remaining.

I don't have an LDP board at hand, and I wasn't able to find out anything from
the logs.

I think I should change omapfb to print something if it's probed succesfully,
as the deferred probing makes finding out if something is probed fine or not
quite murky. Without deferred probing, it was simpler: no errors - the driver
must be (most likely) ok.

Although... In an earlier log, where there was no panel driver, the log has
these errors:

Error opening /dev/fb0: No such device

There are none in the latest log, which makes me guess the omapfb has been
probed, and fb0 is actually there. But the X is still dying for some reason...

I'll look at this more. Maybe someone in our team can find a board to test.
 
 For the SDP4430, it used to detect the displays, even though nothing has
 ever been displayed on them.  Now it just spits out this:

Those particular LCDs are supposed to be updated manually using custom ioctl,
so normal software using fb won't put anything on the display. For testing
purposes, a SW based automatic update (~20 fps) can be enabled by kernel
cmdline parameter omapfb.auto_update or via sysfs:

echo 1  /sys/class/graphics/fb0/update_mode

 OMAP DSS rev 4.0
 omapdss DSI error: can't get VDDS_DSI regulator
 panel-dsi-cm panel-dsi-cm.0: Failed to connect to video source
 omapfb omapfb: failed to connect default display
 omapfb omapfb: failed to init overlay connections
 omapfb omapfb: failed to setup omapfb
 platform omapfb: Driver omapfb requests probe deferral
 ...
 omapdss DSI error: failed to set complexio power state to 1
 panel-dsi-cm panel-dsi-cm.0: failed to enable DSI
 omapfb omapfb: Failed to enable display 'lcd'
 omapfb omapfb: failed to initialize default display
 omapfb omapfb: failed to setup omapfb

Commit e30b06f4d5f000c31a7747a7e7ada78a5fd419a1 (ARM: OMAP2+: Remove legacy mux
code for display.c) was overly enthusiastic in removing legacy code which was
already in use. Tony has a partial revert for that queued up. It can also be
reverted fully for testing. After that, the panel wakes up.

 Tomi




signature.asc
Description: OpenPGP digital signature


[PATCH] drm/tilcdc: Defer probe if no encoders/connectors found

2013-12-18 Thread Markus Pargmann
At the moment this driver fails to load if no encoders/connectors were
found. In case other drivers that register encoders/connectors
(tilcdc_panel) are defered it would be better to check for
encoders/connectors later again. This patch replaces the returncode
-ENXIO with -EPROBE_DEFER to get a working setup even if tilcdc_panel
probes after tilcdc.

Signed-off-by: Markus Pargmann m...@pengutronix.de
---
 drivers/gpu/drm/tilcdc/tilcdc_drv.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/tilcdc/tilcdc_drv.c 
b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
index 116da19..217303c 100644
--- a/drivers/gpu/drm/tilcdc/tilcdc_drv.c
+++ b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
@@ -84,7 +84,7 @@ static int modeset_init(struct drm_device *dev)
if ((priv-num_encoders == 0) || (priv-num_connectors == 0)) {
/* oh nos! */
dev_err(dev-dev, no encoders/connectors found\n);
-   return -ENXIO;
+   return -EPROBE_DEFER;
}
 
dev-mode_config.min_width = 0;
-- 
1.8.5.1

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


Re: [PATCHv2 23/27] OMAPDSS: connector-dvi: Add DT support

2013-12-18 Thread Tomi Valkeinen
On 2013-12-18 12:41, Tomi Valkeinen wrote:

 3. Have correct DT data, but at init time, in omap arch code, go through
 the DT data and change the compat strings for the display nodes to
 include omapdss,. This way the drivers would only work for omap
 platforms. Like a combination of 1. and 2. I'm not sure if the DT-code
 allows this at the moment, though.

This wasn't actually too hard. It says hack all over it, but the code
was quite compact. I call the omapdss_early_init_of() as the first thing
in omap_generic_init(), before the devices are created:

+static const char* const dss_compat_conv_list[] = {
+   hdmi-connector,
+   dvi-connector,
+   ti,tpd12s015,
+   panel-dsi-cm,
+};
+
+static void omapdss_omapify_node(struct device_node *node, const char
*compat)
+{
+   char *new_compat;
+   struct property *prop;
+
+   new_compat = kasprintf(GFP_KERNEL, omapdss,%s, compat);
+
+   prop = kzalloc(sizeof(*prop), GFP_KERNEL);
+   prop-name = compatible;
+   prop-value = new_compat;
+   prop-length = strlen(new_compat) + 1;
+
+   of_update_property(node, prop);
+}
+
+void __init omapdss_early_init_of(void)
+{
+   int i;
+
+   for (i = 0; i  ARRAY_SIZE(dss_compat_conv_list); ++i) {
+   const char *compat = dss_compat_conv_list[i];
+   struct device_node *node = NULL;
+
+   while ((node = of_find_compatible_node(node, NULL,
compat))) {
+   if (!of_device_is_available(node))
+   continue;
+
+   omapdss_omapify_node(node, compat);
+   }
+   }
+}

The list has just part of the devices, and I've so far only tested on
OMAP 4430sdp board, but it seemed to work fine.

So with this, I can have hdmi-connector in the .dts file, and
omapdss,hdmi-connector as a compat string in the omap specific driver.

Does it make your eyes bleed, or is it maybe something that could be
fine for the time being?

 Tomi




signature.asc
Description: OpenPGP digital signature


[PATCH 1/2] regulator: tps65910: Add backup battery regulator

2013-12-18 Thread Markus Pargmann
tps65910 has a backup battery charger with a configurable voltage. This
patch adds a regulator for the backup battery.

Signed-off-by: Markus Pargmann m...@pengutronix.de
---
 drivers/regulator/tps65910-regulator.c | 32 ++--
 include/linux/mfd/tps65910.h   |  3 ++-
 2 files changed, 32 insertions(+), 3 deletions(-)

diff --git a/drivers/regulator/tps65910-regulator.c 
b/drivers/regulator/tps65910-regulator.c
index a00132e..74f5e05 100644
--- a/drivers/regulator/tps65910-regulator.c
+++ b/drivers/regulator/tps65910-regulator.c
@@ -88,6 +88,11 @@ static const unsigned int VMMC_VSEL_table[] = {
180, 280, 300, 330,
 };
 
+/* supported BBCH voltages in microvolts */
+static const unsigned int VBB_VSEL_table[] = {
+   300, 252, 315, 500,
+};
+
 struct tps_info {
const char *name;
const char *vin_name;
@@ -183,6 +188,12 @@ static struct tps_info tps65910_regs[] = {
.voltage_table = VMMC_VSEL_table,
.enable_time_us = 100,
},
+   {
+   .name = vbb,
+   .vin_name = vcc7,
+   .n_voltages = ARRAY_SIZE(VBB_VSEL_table),
+   .voltage_table = VBB_VSEL_table,
+   },
 };
 
 static struct tps_info tps65911_regs[] = {
@@ -339,6 +350,8 @@ static int tps65910_get_ctrl_register(int id)
return TPS65910_VAUX33;
case TPS65910_REG_VMMC:
return TPS65910_VMMC;
+   case TPS65910_REG_VBB:
+   return TPS65910_BBCH;
default:
return -EINVAL;
}
@@ -528,6 +541,10 @@ static int tps65910_get_voltage_sel(struct regulator_dev 
*dev)
value = LDO_SEL_MASK;
value = LDO_SEL_SHIFT;
break;
+   case TPS65910_REG_VBB:
+   value = BBCH_BBSEL_MASK;
+   value = BBCH_BBSEL_SHIFT;
+   break;
default:
return -EINVAL;
}
@@ -638,6 +655,9 @@ static int tps65910_set_voltage_sel(struct regulator_dev 
*dev,
case TPS65910_REG_VMMC:
return tps65910_reg_update_bits(pmic-mfd, reg, LDO_SEL_MASK,
selector  LDO_SEL_SHIFT);
+   case TPS65910_REG_VBB:
+   return tps65910_reg_update_bits(pmic-mfd, reg, BBCH_BBSEL_MASK,
+   selector  BBCH_BBSEL_SHIFT);
}
 
return -EINVAL;
@@ -669,6 +689,9 @@ static int tps65911_set_voltage_sel(struct regulator_dev 
*dev,
case TPS65910_REG_VIO:
return tps65910_reg_update_bits(pmic-mfd, reg, LDO_SEL_MASK,
selector  LDO_SEL_SHIFT);
+   case TPS65910_REG_VBB:
+   return tps65910_reg_update_bits(pmic-mfd, reg, BBCH_BBSEL_MASK,
+   selector  BBCH_BBSEL_SHIFT);
}
 
return -EINVAL;
@@ -771,7 +794,7 @@ static struct regulator_ops tps65910_ops = {
.get_voltage_sel= tps65910_get_voltage_sel,
.set_voltage_sel= tps65910_set_voltage_sel,
.list_voltage   = regulator_list_voltage_table,
-   .map_voltage= regulator_map_voltage_ascend,
+   .map_voltage= regulator_map_voltage_iterate,
 };
 
 static struct regulator_ops tps65911_ops = {
@@ -944,6 +967,7 @@ static struct of_regulator_match tps65910_matches[] = {
{ .name = vaux2,  .driver_data = (void *) tps65910_regs[10] },
{ .name = vaux33, .driver_data = (void *) tps65910_regs[11] },
{ .name = vmmc,   .driver_data = (void *) tps65910_regs[12] },
+   { .name = vbb,.driver_data = (void *) tps65910_regs[13] },
 };
 
 static struct of_regulator_match tps65911_matches[] = {
@@ -1167,7 +1191,11 @@ static int tps65910_probe(struct platform_device *pdev)
pmic-desc[i].type = REGULATOR_VOLTAGE;
pmic-desc[i].owner = THIS_MODULE;
pmic-desc[i].enable_reg = pmic-get_ctrl_reg(i);
-   pmic-desc[i].enable_mask = TPS65910_SUPPLY_STATE_ENABLED;
+   if (tps65910_chip_id(tps65910) == TPS65910 
+   i == TPS65910_REG_VBB)
+   pmic-desc[i].enable_mask = BBCH_BBCHEN_MASK;
+   else
+   pmic-desc[i].enable_mask = 
TPS65910_SUPPLY_STATE_ENABLED;
 
config.dev = tps65910-dev;
config.init_data = reg_data;
diff --git a/include/linux/mfd/tps65910.h b/include/linux/mfd/tps65910.h
index 20e433e..1adeee1 100644
--- a/include/linux/mfd/tps65910.h
+++ b/include/linux/mfd/tps65910.h
@@ -833,6 +833,7 @@
 #define TPS65910_REG_VAUX2 10
 #define TPS65910_REG_VAUX3311
 #define TPS65910_REG_VMMC  12
+#define TPS65910_REG_VBB   13
 
 #define 

[PATCH 2/2] ARM: dts: tps65910 backup battery regulator

2013-12-18 Thread Markus Pargmann
This patch adds a devicetree node for the backup battery regulator.

Signed-off-by: Markus Pargmann m...@pengutronix.de
---
 arch/arm/boot/dts/tps65910.dtsi | 5 +
 1 file changed, 5 insertions(+)

diff --git a/arch/arm/boot/dts/tps65910.dtsi b/arch/arm/boot/dts/tps65910.dtsi
index 92693a8..b0ac665 100644
--- a/arch/arm/boot/dts/tps65910.dtsi
+++ b/arch/arm/boot/dts/tps65910.dtsi
@@ -82,5 +82,10 @@
reg = 12;
regulator-compatible = vmmc;
};
+
+   vbb_reg: regulator@13 {
+   reg = 13;
+   regulator-compatible = vbb;
+   };
};
 };
-- 
1.8.5.1

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


Re: [RFC PATCH v3 2/8] mmc: omap_hsmmc: handle vcc and vcc_aux independently

2013-12-18 Thread Balaji T K

On Wednesday 11 December 2013 04:51 PM, Ulf Hansson wrote:

On 10 December 2013 12:48, Balaji T K balaj...@ti.com wrote:

On Tuesday 10 December 2013 04:39 PM, Ulf Hansson wrote:


On 21 November 2013 15:20, Balaji T K balaj...@ti.com wrote:


handle vcc and vcc_aux independently to reduce indent.

Signed-off-by: Balaji T K balaj...@ti.com
---
   drivers/mmc/host/omap_hsmmc.c |   54
+++--
   1 files changed, 25 insertions(+), 29 deletions(-)

diff --git a/drivers/mmc/host/omap_hsmmc.c
b/drivers/mmc/host/omap_hsmmc.c
index 1eb4350..342be25 100644
--- a/drivers/mmc/host/omap_hsmmc.c
+++ b/drivers/mmc/host/omap_hsmmc.c
@@ -286,11 +286,12 @@ static int omap_hsmmc_set_power(struct device *dev,
int slot, int power_on,
   * chips/cards need an interface voltage rail too.
   */
  if (power_on) {
-   ret = mmc_regulator_set_ocr(host-mmc, host-vcc, vdd);
+   if (host-vcc)
+   ret = mmc_regulator_set_ocr(host-mmc, host-vcc,
vdd);
  /* Enable interface voltage rail, if needed */
  if (ret == 0  host-vcc_aux) {
  ret = regulator_enable(host-vcc_aux);
-   if (ret  0)
+   if (ret  0  host-vcc)
  ret = mmc_regulator_set_ocr(host-mmc,
  host-vcc, 0);
  }
@@ -298,7 +299,7 @@ static int omap_hsmmc_set_power(struct device *dev,
int slot, int power_on,
  /* Shut down the rail */
  if (host-vcc_aux)
  ret = regulator_disable(host-vcc_aux);
-   if (!ret) {
+   if (host-vcc) {
  /* Then proceed to shut down the local regulator
*/
  ret = mmc_regulator_set_ocr(host-mmc,
  host-vcc, 0);
@@ -318,10 +319,10 @@ static int omap_hsmmc_reg_get(struct
omap_hsmmc_host *host)

  reg = devm_regulator_get(host-dev, vmmc);
  if (IS_ERR(reg)) {
-   dev_err(host-dev, vmmc regulator missing\n);
+   dev_err(host-dev, unable to get vmmc regulator %ld\n,
+   PTR_ERR(reg));
  return PTR_ERR(reg);
  } else {
-   mmc_slot(host).set_power = omap_hsmmc_set_power;
  host-vcc = reg;
  ocr_value = mmc_regulator_get_ocrmask(reg);
  if (!mmc_slot(host).ocr_mask) {
@@ -334,31 +335,26 @@ static int omap_hsmmc_reg_get(struct
omap_hsmmc_host *host)
  return -EINVAL;
  }
  }
+   }
+   mmc_slot(host).set_power = omap_hsmmc_set_power;

-   /* Allow an aux regulator */
-   reg = devm_regulator_get_optional(host-dev, vmmc_aux);
-   host-vcc_aux = IS_ERR(reg) ? NULL : reg;
+   /* Allow an aux regulator */
+   reg = devm_regulator_get_optional(host-dev, vmmc_aux);
+   host-vcc_aux = IS_ERR(reg) ? NULL : reg;

-   /* For eMMC do not power off when not in sleep state */
-   if (mmc_slot(host).no_regulator_off_init)
-   return 0;
-   /*
-   * UGLY HACK:  workaround regulator framework bugs.
-   * When the bootloader leaves a supply active, it's
-   * initialized with zero usecount ... and we can't
-   * disable it without first enabling it.  Until the
-   * framework is fixed, we need a workaround like this
-   * (which is safe for MMC, but not in general).
-   */



The above problem is handled by the mmc core layer. I certainly think
you shall adopt your code to it.


Hi Ulf,

how about optional vqmmc, omap_hsmmc does call mmc_regulator_set_ocr for
vmmc
Am I missing something?


Hi Balaji,

Sorry for being to vague, let me elaborate.

1. Before omap_hsmmc_probe returns, it invokes mmc_add_host().

2. mmc_add_host() - mmc_start_host() -  mmc_power_up().

3. mmc_power_up() invokes the host driver's .set_ios() callback, to
makes sure boot-on regulators are kept enabled. Otherwise the
late_initcall, regulator_init_complete() will potentially cut power
for unused regulators.

This is important because there are SoCs that are only capable of
power cycling the VCC regulator but not VCCQ. According to the eMMC
spec, we must not cut VCC without sending the SLEEP cmd first.
Obviously, since we prevent VCC from being cut, we need to prevent
VCCQ from being cut as well.

Normally a .set_ios() function's invokes mmc_regulator_set_ocr() for
the VCC regulator. VCCQ (vmmc_aux) is handled by directly using the
regulator API (I guess we could invent an API similar to
mmc_regulator_set_ocr() but for VCCQ, but that is a future task).

So, from a host driver perspective you could add a local variable to
cache the 

Re: [PATCH] drm/tilcdc: Defer probe if no encoders/connectors found

2013-12-18 Thread Rob Clark
On Wed, Dec 18, 2013 at 8:56 AM, Markus Pargmann m...@pengutronix.de wrote:
 At the moment this driver fails to load if no encoders/connectors were
 found. In case other drivers that register encoders/connectors
 (tilcdc_panel) are defered it would be better to check for
 encoders/connectors later again. This patch replaces the returncode
 -ENXIO with -EPROBE_DEFER to get a working setup even if tilcdc_panel
 probes after tilcdc.

yeah, that is probably better than relying on late_initcall() hacks..

Signed-off-by: Rob Clark robdcl...@gmail.com

 Signed-off-by: Markus Pargmann m...@pengutronix.de
 ---
  drivers/gpu/drm/tilcdc/tilcdc_drv.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

 diff --git a/drivers/gpu/drm/tilcdc/tilcdc_drv.c 
 b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
 index 116da19..217303c 100644
 --- a/drivers/gpu/drm/tilcdc/tilcdc_drv.c
 +++ b/drivers/gpu/drm/tilcdc/tilcdc_drv.c
 @@ -84,7 +84,7 @@ static int modeset_init(struct drm_device *dev)
 if ((priv-num_encoders == 0) || (priv-num_connectors == 0)) {
 /* oh nos! */
 dev_err(dev-dev, no encoders/connectors found\n);
 -   return -ENXIO;
 +   return -EPROBE_DEFER;
 }

 dev-mode_config.min_width = 0;
 --
 1.8.5.1

 --
 To unsubscribe from this list: send the line unsubscribe linux-omap 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-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: OMAP display subsystem - does it work?

2013-12-18 Thread Russell King - ARM Linux
On Wed, Dec 18, 2013 at 03:54:42PM +0200, Tomi Valkeinen wrote:
 On 2013-12-18 14:00, Russell King - ARM Linux wrote:
  For the SDP4430, it used to detect the displays, even though nothing has
  ever been displayed on them.  Now it just spits out this:
 
 Those particular LCDs are supposed to be updated manually using custom ioctl,
 so normal software using fb won't put anything on the display. For testing
 purposes, a SW based automatic update (~20 fps) can be enabled by kernel
 cmdline parameter omapfb.auto_update or via sysfs:
 
 echo 1  /sys/class/graphics/fb0/update_mode

I'm confused.  How then can the original kernel which came with the board
run two gstreamer videos on these displays by just talking to the
framebuffers and play it back smoothly given that we're talking about
video at normal fps settings?

When I received the board, that's exactly what it did at boot up - it
played back two different video trailers, one on each LCD, and the
playback was smooth, just like you'd expect from watching a DVD on your
TV.  No missing frames, which is what you'd get if you tried to update
at 20fps.
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH V3] usb: musb: Fix unstable init of OTG_INTERFSEL.

2013-12-18 Thread Felipe Balbi
Hi,

On Tue, Dec 17, 2013 at 05:48:33PM +0100, anaum...@ultratronik.de wrote:
 From: Andreas Naumann anaum...@ultratronik.de
 
 This is a hard to reproduce problem which leads to non-functional
 USB-OTG port in 0.1%-1% of all boots. Tracked it down to commit
 e25bec160158abe86c276d7d206264afc3646281, which introduces save/restore
 of OTG_INTERFSEL over suspend.
 Since the resume function is also called early in driver init, it uses a
 non-initialized value (which is 0 and a non-supported setting in DM37xx
 for INTERFSEL). Shortly after the correct value is set. Apparently this
 works most time, but not always.

yeah, but the problem is not on the glue layer. The bug is omap_device
and pm_runtime not agreeing on device's state. I suppose there was a fix
for that recently in linux-omap@vger mailing list.

-- 
balbi


signature.asc
Description: Digital signature


Re: [PATCH 0/7] usb: dwc3: pm_runtime implementation

2013-12-18 Thread Felipe Balbi
Hi,

On Tue, Dec 17, 2013 at 03:35:54PM -0800, David Cohen wrote:
 On Tue, Dec 17, 2013 at 03:31:40PM -0800, David Cohen wrote:
  On Thu, Dec 12, 2013 at 03:38:38PM -0600, Felipe Balbi wrote:
   hi all,
   
   these patches add pm_runtime support for all glue layers.
   
   I plan to add pm_runtime support for dwc3 after these
   patches are merged upstream.
   
   Please test.
  
  At first time I failed to notice you were removing #ifdef's around pm
  callback functions. Instead of saying DWC3 will start to have warnings
  when CONFIG_PM is not selected, I'd say your patch set is now a
  dependence of my RFC :)
 
 I guess I said it in wrong order :P
 Your patch set depends on my RFC.

Or I just modify my patchset a little bit for now ;-)

-- 
balbi


signature.asc
Description: Digital signature


Re: [PATCH 0/7] usb: dwc3: pm_runtime implementation

2013-12-18 Thread Felipe Balbi
On Wed, Dec 18, 2013 at 09:36:14AM -0600, Felipe Balbi wrote:
 Hi,
 
 On Tue, Dec 17, 2013 at 03:35:54PM -0800, David Cohen wrote:
  On Tue, Dec 17, 2013 at 03:31:40PM -0800, David Cohen wrote:
   On Thu, Dec 12, 2013 at 03:38:38PM -0600, Felipe Balbi wrote:
hi all,

these patches add pm_runtime support for all glue layers.

I plan to add pm_runtime support for dwc3 after these
patches are merged upstream.

Please test.
   
   At first time I failed to notice you were removing #ifdef's around pm
   callback functions. Instead of saying DWC3 will start to have warnings
   when CONFIG_PM is not selected, I'd say your patch set is now a
   dependence of my RFC :)
  
  I guess I said it in wrong order :P
  Your patch set depends on my RFC.
 
 Or I just modify my patchset a little bit for now ;-)

nah, it looks horrible with all those ifdefs around. I'll delay my
patch series.

-- 
balbi


signature.asc
Description: Digital signature


Re: OMAP display subsystem - does it work?

2013-12-18 Thread Tomi Valkeinen
On 2013-12-18 17:29, Russell King - ARM Linux wrote:
 On Wed, Dec 18, 2013 at 03:54:42PM +0200, Tomi Valkeinen wrote:
 On 2013-12-18 14:00, Russell King - ARM Linux wrote:
 For the SDP4430, it used to detect the displays, even though nothing has
 ever been displayed on them.  Now it just spits out this:

 Those particular LCDs are supposed to be updated manually using custom ioctl,
 so normal software using fb won't put anything on the display. For testing
 purposes, a SW based automatic update (~20 fps) can be enabled by kernel
 cmdline parameter omapfb.auto_update or via sysfs:

 echo 1  /sys/class/graphics/fb0/update_mode
 
 I'm confused.  How then can the original kernel which came with the board
 run two gstreamer videos on these displays by just talking to the
 framebuffers and play it back smoothly given that we're talking about
 video at normal fps settings?
 
 When I received the board, that's exactly what it did at boot up - it
 played back two different video trailers, one on each LCD, and the
 playback was smooth, just like you'd expect from watching a DVD on your
 TV.  No missing frames, which is what you'd get if you tried to update
 at 20fps.

We once had auto-update support in omapdss in the early versions. It was
removed quite a while ago, as it was a burden to maintain. Either the
kernel you talk about had the auto-update support, or the userspace has
support for manual-update displays.

The thing is, these LCDs are not meant to be used in auto-update mode.
The main point with LCDs with their own framebuffer is that they are
only updated when needed. So a production device would not need
auto-update support. Furthermore, as these LCDs are quite rare, and
4430SDP is the only one we support having these displays, and that board
itself is not exactly a common one, it was decided that the maintenance
burden is not worth it.

I have been thinking of improving the auto-update in omapfb, but it has
never been on the top of my list (or even middle). The current code
basically does just queue_delayed_work() 20 times per second, so it's
just a hack for testing.

 Tomi




signature.asc
Description: OpenPGP digital signature


Re: [RFC 5/5] usb: dwc3: enable async suspend/resume

2013-12-18 Thread Felipe Balbi
On Wed, Dec 18, 2013 at 04:09:34PM +0530, Yuvaraj Kumar C D wrote:
 From: Andrew Bresticker abres...@chromium.org
 
 In addition to enabling async suspend/resume on the xhci-plat device,
 we must enable it for the dwc3 device (the parent of xhci-plat) in order
 to make the full USB stack resume asynchronously.  Like the xhci-plat,
 ehci-s5p, and ohci-exynos drivers, there are no outside dependencies
 which would make resuming the dwc3 driver asynchronously unsafe.
 
 Signed-off-by: Andrew Bresticker abres...@chromium.org
 Reviewed-by: Julius Werner jwer...@chromium.org
 Signed-off-by: Yuvaraj Kumar C D yuvaraj...@samsung.com
 ---
  drivers/usb/dwc3/core.c |2 ++
  1 file changed, 2 insertions(+)
 
 diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
 index 59bb8d2..9c8a273 100644
 --- a/drivers/usb/dwc3/core.c
 +++ b/drivers/usb/dwc3/core.c
 @@ -586,6 +586,8 @@ static int dwc3_probe(struct platform_device *pdev)
  
   pm_runtime_allow(dev);
  
 + device_enable_async_suspend(dev);

how has this series been tested ? Let me rephrase this: was this series
tested at all ? Note that if we are in gadget mode, we will disable
physical endpoints 0 and 1, which will break USB communication requiring
a new enumeration later. On top of that, for versions of the core which
are configured without hibernation support - in fact for all cores
currently, since we don't have hibernation support implemented in this
driver -, we will loose communication with the far end (be it a host or
a device).

You mention there are no external dependencies to make async suspend
work on this driver, but that's far from the truth. As it is today, this
driver needs a lot of work to learn about all the details about all
different versions of this IP when it comes to supporting async PM.

I suppose this was tested with 500 other out-of-tree patches and you
simply cherry-picked this patch to send upstream ? Am I right ? It
certainly looks like it.

Please let us know how has this been tested ? Did you run USB30CV ? Did
you make sure to run through USB Certification interoperability tests ?

Did you leave some stress test running for weeks before sending this
patch out ? Is Exynos 5 working fine out of mainline ?

cheers

-- 
balbi


signature.asc
Description: Digital signature


[net PATCH v3 1/1] drivers: net : cpsw: pass proper device name while requesting irq

2013-12-18 Thread Mugunthan V N
During checking the interrupts with cat /proc/interrupts, it is showing
device name as (null), this change was done with commit id aa1a15e2d where
request_irq is changed to devm_request_irq also changing the irq name from
platform device name to net device name, but the net device is not
registered at this point with the network frame work, so devm_request_irq
is called with device name as NULL, by which it is showed as (null) in
cat /proc/interrupts. So this patch changes back irq name to platform
device name itself in devm_request_irq so that the device name shows as
below.

Previous to this patch
root@am335x-evm:~# cat /proc/interrupts
   CPU0
 28:   2265  INTC  12  edma
 30: 80  INTC  14  edma_error
 56:  0  INTC  40  (null)
 57:   1794  INTC  41  (null)
 58:  7  INTC  42  (null)
 59:  0  INTC  43  (null)

With this patch
root@am335x-evm:~# cat /proc/interrupts
   CPU0
 28:213  INTC  12  edma
 30:  9  INTC  14  edma_error
 56:  0  INTC  40  4a10.ethernet
 57:  16097  INTC  41  4a10.ethernet
 58:  11964  INTC  42  4a10.ethernet
 59:  0  INTC  43  4a10.ethernet

Signed-off-by: Mugunthan V N mugunthan...@ti.com
---
Changes from Initial version
* Changed the commit message to hold more details of the commit changes

Changes from v2
* Instead of moving request irq below net dev register, changing the
  request irq name from net device to platform device as previous to
  convertion to devm* is done.
---
 drivers/net/ethernet/ti/cpsw.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/ti/cpsw.c b/drivers/net/ethernet/ti/cpsw.c
index 614f284..5330fd2 100644
--- a/drivers/net/ethernet/ti/cpsw.c
+++ b/drivers/net/ethernet/ti/cpsw.c
@@ -2108,7 +2108,7 @@ static int cpsw_probe(struct platform_device *pdev)
while ((res = platform_get_resource(priv-pdev, IORESOURCE_IRQ, k))) {
for (i = res-start; i = res-end; i++) {
if (devm_request_irq(pdev-dev, i, cpsw_interrupt, 0,
-dev_name(priv-dev), priv)) {
+dev_name(pdev-dev), priv)) {
dev_err(priv-dev, error attaching irq\n);
goto clean_ale_ret;
}
-- 
1.8.5.2.192.g7794a68

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


Re: [RFC 4/5] usb: dwc3-exynos: enable async suspend/resume

2013-12-18 Thread Felipe Balbi
On Wed, Dec 18, 2013 at 04:09:33PM +0530, Yuvaraj Kumar C D wrote:
 From: Andrew Bresticker abres...@chromium.org
 
 In addition to enabling async suspend/resume on the xhci-plat device,
 we must enable it for the dwc3-exynos platform device in order to make
 the full USB stack resume asynchronously.  Like the xhci-plat, ehci-s5p,
 and ohci-exynos drivers, there are no outside dependencies which would
 make resuming the dwc3-exynos driver asynchronously unsafe.
 
 Signed-off-by: Andrew Bresticker abres...@chromium.org
 Reviewed-by: Julius Werner jwer...@chromium.org
 Signed-off-by: Yuvaraj Kumar C D yuvaraj...@samsung.com
 ---
  drivers/usb/dwc3/dwc3-exynos.c |2 ++
  1 file changed, 2 insertions(+)
 
 diff --git a/drivers/usb/dwc3/dwc3-exynos.c b/drivers/usb/dwc3/dwc3-exynos.c
 index 8b20c70..57431b7 100644
 --- a/drivers/usb/dwc3/dwc3-exynos.c
 +++ b/drivers/usb/dwc3/dwc3-exynos.c
 @@ -155,6 +155,8 @@ static int dwc3_exynos_probe(struct platform_device *pdev)
   goto err2;
   }
  
 + device_enable_async_suspend(dev);

sure that clk_disable() in your -suspend() callback will cause no
issues at all ?

-- 
balbi


signature.asc
Description: Digital signature


Re: [PATCH 1/2] regulator: tps65910: Add backup battery regulator

2013-12-18 Thread Mark Brown
On Wed, Dec 18, 2013 at 03:50:07PM +0100, Markus Pargmann wrote:

 @@ -771,7 +794,7 @@ static struct regulator_ops tps65910_ops = {
   .get_voltage_sel= tps65910_get_voltage_sel,
   .set_voltage_sel= tps65910_set_voltage_sel,
   .list_voltage   = regulator_list_voltage_table,
 - .map_voltage= regulator_map_voltage_ascend,
 + .map_voltage= regulator_map_voltage_iterate,
  };

You should make separate ops for this rather than make all the other
regulators take the performance hit.

  static struct regulator_ops tps65911_ops = {
 @@ -944,6 +967,7 @@ static struct of_regulator_match tps65910_matches[] = {
   { .name = vaux2,  .driver_data = (void *) tps65910_regs[10] },
   { .name = vaux33, .driver_data = (void *) tps65910_regs[11] },
   { .name = vmmc,   .driver_data = (void *) tps65910_regs[12] },
 + { .name = vbb,.driver_data = (void *) tps65910_regs[13] },
  };

Ugh, these numbered tables aren't good.  Not a problem from this patch
though.

 - pmic-desc[i].enable_mask = TPS65910_SUPPLY_STATE_ENABLED;
 + if (tps65910_chip_id(tps65910) == TPS65910 
 + i == TPS65910_REG_VBB)
 + pmic-desc[i].enable_mask = BBCH_BBCHEN_MASK;
 + else
 + pmic-desc[i].enable_mask = 
 TPS65910_SUPPLY_STATE_ENABLED;

switch statements please - it means if additional things need
customising they can drop right in.


signature.asc
Description: Digital signature


Re: [PATCH 2/2] ARM: dts: tps65910 backup battery regulator

2013-12-18 Thread Mark Brown
On Wed, Dec 18, 2013 at 03:50:08PM +0100, Markus Pargmann wrote:
 This patch adds a devicetree node for the backup battery regulator.

Your previous patch missed an update to the binding documentation for
the regulator driver.


signature.asc
Description: Digital signature


[PATCH 3/6] net: cpsw: Add control-module macid driver

2013-12-18 Thread Markus Pargmann
This driver extracts the hardware macid from the control module of
am335x processors. It exports a function cpsw_ctrl_macid_read for cpsw
to get the macid from within the processor.

This driver is not used, unless it is defined in DT and referenced by a
cpsw slave with a phandle.

Signed-off-by: Markus Pargmann m...@pengutronix.de
---
 .../devicetree/bindings/net/cpsw-ctrl-macid.txt|  31 +
 drivers/net/ethernet/ti/Kconfig|   8 ++
 drivers/net/ethernet/ti/Makefile   |   1 +
 drivers/net/ethernet/ti/cpsw-ctrl-macid.c  | 138 +
 4 files changed, 178 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/net/cpsw-ctrl-macid.txt
 create mode 100644 drivers/net/ethernet/ti/cpsw-ctrl-macid.c

diff --git a/Documentation/devicetree/bindings/net/cpsw-ctrl-macid.txt 
b/Documentation/devicetree/bindings/net/cpsw-ctrl-macid.txt
new file mode 100644
index 000..abff2af
--- /dev/null
+++ b/Documentation/devicetree/bindings/net/cpsw-ctrl-macid.txt
@@ -0,0 +1,31 @@
+TI CPSW ctrl macid Devicetree bindings
+--
+
+Required properties:
+ - compatible  : Should be ti,am3352-cpsw-ctrl-macid
+ - reg : physical base address and size of the cpsw
+ registers map
+ - reg-names   : names of the register map given in reg node
+ - #ti,cpsw-ctrl-macid : Should be 1
+
+When used from cpsw, ti,mac-address-ctrl should be a phandle to this device
+node with one argument, 0 or 1 to select the macid 0 or 1.
+
+Examples:
+
+   cpsw_ctrl_macid: cpsw-ctrl-macid@44e10630 {
+   compatible = ti,am3352-cpsw-ctrl-macid;
+   #ti,mac-address-ctrl-cells = 1;
+   reg = 0x44e10630 0x16;
+   reg-names = ctrl-macid;
+   };
+
+Used in cpsw slave nodes like this:
+
+   cpsw_emac0: slave@4a100200 {
+   ti,mac-address-ctrl = cpsw_ctrl_macid 0;
+   };
+
+   cpsw_emac1: slave@4a100300 {
+   ti,mac-address-ctrl = cpsw_ctrl_macid 1;
+   };
diff --git a/drivers/net/ethernet/ti/Kconfig b/drivers/net/ethernet/ti/Kconfig
index 53150c2..24819ef 100644
--- a/drivers/net/ethernet/ti/Kconfig
+++ b/drivers/net/ethernet/ti/Kconfig
@@ -56,12 +56,20 @@ config TI_CPSW_PHY_SEL
  This driver supports configuring of the phy mode connected to
  the CPSW.
 
+config TI_CPSW_CTRL_MACID
+   boolean TI CPSW internal MACID support
+   depends on TI_CPSW
+   ---help---
+ This driver supports reading the hardcoded MACID from am33xx
+ processors control module.
+
 config TI_CPSW
tristate TI CPSW Switch Support
depends on ARM  (ARCH_DAVINCI || SOC_AM33XX)
select TI_DAVINCI_CPDMA
select TI_DAVINCI_MDIO
select TI_CPSW_PHY_SEL
+   select TI_CPSW_CTRL_MACID
---help---
  This driver supports TI's CPSW Ethernet Switch.
 
diff --git a/drivers/net/ethernet/ti/Makefile b/drivers/net/ethernet/ti/Makefile
index 9cfaab8..5a31c2b 100644
--- a/drivers/net/ethernet/ti/Makefile
+++ b/drivers/net/ethernet/ti/Makefile
@@ -8,5 +8,6 @@ obj-$(CONFIG_TI_DAVINCI_EMAC) += davinci_emac.o
 obj-$(CONFIG_TI_DAVINCI_MDIO) += davinci_mdio.o
 obj-$(CONFIG_TI_DAVINCI_CPDMA) += davinci_cpdma.o
 obj-$(CONFIG_TI_CPSW_PHY_SEL) += cpsw-phy-sel.o
+obj-$(CONFIG_TI_CPSW_CTRL_MACID) += cpsw-ctrl-macid.o
 obj-$(CONFIG_TI_CPSW) += ti_cpsw.o
 ti_cpsw-y := cpsw_ale.o cpsw.o cpts.o
diff --git a/drivers/net/ethernet/ti/cpsw-ctrl-macid.c 
b/drivers/net/ethernet/ti/cpsw-ctrl-macid.c
new file mode 100644
index 000..e18c957
--- /dev/null
+++ b/drivers/net/ethernet/ti/cpsw-ctrl-macid.c
@@ -0,0 +1,138 @@
+/* CPSW Control Module MACID driver
+ *
+ * Copyright (C) 2013 Markus Pargmann m...@pengutronix.de
+ *
+ * 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.
+ *
+ * This program is distributed as is WITHOUT ANY WARRANTY of any
+ * kind, whether express or implied; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ */
+
+#include linux/platform_device.h
+#include linux/module.h
+#include linux/of.h
+#include linux/of_device.h
+
+#include cpsw.h
+
+#define AM33XX_CTRL_MAC_LO_REG(id) (0x8 * id)
+#define AM33XX_CTRL_MAC_HI_REG(id) (0x8 * id + 0x4)
+
+struct cpsw_ctrl_macid {
+   struct device *dev;
+   u8 __iomem *ctrl_macid;
+   void (*cpsw_macid_get)(struct cpsw_ctrl_macid *priv, int slave,
+   u8 *mac_addr);
+};
+
+
+static void cpsw_ctrl_get_macid(struct cpsw_ctrl_macid *priv, int slave,
+   u8 *mac_addr)
+{
+   u32 macid_lo;
+   u32 macid_hi;
+
+   macid_lo = readl(priv-ctrl_macid + AM33XX_CTRL_MAC_LO_REG(slave));
+   macid_hi = readl(priv-ctrl_macid + 

[PATCH 2/6] net: cpsw: header, Add missing include

2013-12-18 Thread Markus Pargmann
MII_BUS_ID_SIZE is defined in linux/phy.h which is not included in the
cpsw.h file.

Signed-off-by: Markus Pargmann m...@pengutronix.de
---
 drivers/net/ethernet/ti/cpsw.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/ethernet/ti/cpsw.h b/drivers/net/ethernet/ti/cpsw.h
index 574f49d..1b71067 100644
--- a/drivers/net/ethernet/ti/cpsw.h
+++ b/drivers/net/ethernet/ti/cpsw.h
@@ -15,6 +15,7 @@
 #define __CPSW_H__
 
 #include linux/if_ether.h
+#include linux/phy.h
 
 struct cpsw_slave_data {
charphy_id[MII_BUS_ID_SIZE];
-- 
1.8.5.1

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


[PATCH 1/6] DT doc: net: cpsw mac-address is optional

2013-12-18 Thread Markus Pargmann
mac-address is an optional property. If no mac-address is set, a random
mac-address will be generated.

Signed-off-by: Markus Pargmann m...@pengutronix.de
---
 Documentation/devicetree/bindings/net/cpsw.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/net/cpsw.txt 
b/Documentation/devicetree/bindings/net/cpsw.txt
index 05d660e..c39f077 100644
--- a/Documentation/devicetree/bindings/net/cpsw.txt
+++ b/Documentation/devicetree/bindings/net/cpsw.txt
@@ -30,10 +30,10 @@ Required properties:
 - phy_id   : Specifies slave phy id
 - phy-mode : The interface between the SoC and the PHY (a string
  that of_get_phy_mode() can understand)
-- mac-address  : Specifies slave MAC address
 
 Optional properties:
 - dual_emac_res_vlan   : Specifies VID to be used to segregate the ports
+- mac-address  : Specifies slave MAC address
 
 Note: ti,hwmods field is used to fetch the base address and irq
 resources from TI, omap hwmod data base during device registration.
-- 
1.8.5.1

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


[PATCH 6/6] arm: dts: am335x beagle bone use processor macids

2013-12-18 Thread Markus Pargmann
Use macids stored in the am335x chip.

Signed-off-by: Markus Pargmann m...@pengutronix.de
---
 arch/arm/boot/dts/am335x-bone.dts  | 8 
 arch/arm/boot/dts/am335x-boneblack.dts | 8 
 2 files changed, 16 insertions(+)

diff --git a/arch/arm/boot/dts/am335x-bone.dts 
b/arch/arm/boot/dts/am335x-bone.dts
index 94ee427..9b65a62 100644
--- a/arch/arm/boot/dts/am335x-bone.dts
+++ b/arch/arm/boot/dts/am335x-bone.dts
@@ -10,6 +10,14 @@
 #include am33xx.dtsi
 #include am335x-bone-common.dtsi
 
+cpsw_emac0 {
+   ti,mac-address-ctrl = cpsw_ctrl_macid 0;
+};
+
+cpsw_emac1 {
+   ti,mac-address-ctrl = cpsw_ctrl_macid 1;
+};
+
 ldo3_reg {
regulator-min-microvolt = 180;
regulator-max-microvolt = 330;
diff --git a/arch/arm/boot/dts/am335x-boneblack.dts 
b/arch/arm/boot/dts/am335x-boneblack.dts
index 6b71ad9..f6f0b40 100644
--- a/arch/arm/boot/dts/am335x-boneblack.dts
+++ b/arch/arm/boot/dts/am335x-boneblack.dts
@@ -10,6 +10,14 @@
 #include am33xx.dtsi
 #include am335x-bone-common.dtsi
 
+cpsw_emac0 {
+   ti,mac-address-ctrl = cpsw_ctrl_macid 0;
+};
+
+cpsw_emac1 {
+   ti,mac-address-ctrl = cpsw_ctrl_macid 1;
+};
+
 ldo3_reg {
regulator-min-microvolt = 180;
regulator-max-microvolt = 180;
-- 
1.8.5.1

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


[PATCH 4/6] net: cpsw: Use cpsw-ctrl-macid driver

2013-12-18 Thread Markus Pargmann
Use ctrl-macid driver to obtain the macids stored in the processor. This
is only done when defined in DT.

Signed-off-by: Markus Pargmann m...@pengutronix.de
---
 Documentation/devicetree/bindings/net/cpsw.txt |  5 +
 drivers/net/ethernet/ti/cpsw.c | 18 ++
 drivers/net/ethernet/ti/cpsw.h |  2 ++
 3 files changed, 21 insertions(+), 4 deletions(-)

diff --git a/Documentation/devicetree/bindings/net/cpsw.txt 
b/Documentation/devicetree/bindings/net/cpsw.txt
index c39f077..b95c38b 100644
--- a/Documentation/devicetree/bindings/net/cpsw.txt
+++ b/Documentation/devicetree/bindings/net/cpsw.txt
@@ -34,6 +34,11 @@ Required properties:
 Optional properties:
 - dual_emac_res_vlan   : Specifies VID to be used to segregate the ports
 - mac-address  : Specifies slave MAC address
+- ti,mac-address-ctrl  : When cpsw-ctrl-macid support is compiledin, this can
+ be set to a phandle with one argument, see
+ cpsw-ctrl-macid.txt. If this method fails, cpsw falls
+ back to mac-address or random mac-address.
+
 
 Note: ti,hwmods field is used to fetch the base address and irq
 resources from TI, omap hwmod data base during device registration.
diff --git a/drivers/net/ethernet/ti/cpsw.c b/drivers/net/ethernet/ti/cpsw.c
index 5120d9c..382d793 100644
--- a/drivers/net/ethernet/ti/cpsw.c
+++ b/drivers/net/ethernet/ti/cpsw.c
@@ -1804,9 +1804,16 @@ static int cpsw_probe_dt(struct cpsw_platform_data *data,
snprintf(slave_data-phy_id, sizeof(slave_data-phy_id),
 PHY_ID_FMT, mdio-name, phyid);
 
-   mac_addr = of_get_mac_address(slave_node);
-   if (mac_addr)
-   memcpy(slave_data-mac_addr, mac_addr, ETH_ALEN);
+   ret = cpsw_ctrl_macid_read(slave_node, slave_data-mac_addr);
+   if (ret) {
+   if (ret == -EPROBE_DEFER)
+   return ret;
+
+   mac_addr = of_get_mac_address(slave_node);
+   if (mac_addr)
+   memcpy(slave_data-mac_addr, mac_addr,
+   ETH_ALEN);
+   }
 
slave_data-phy_if = of_get_phy_mode(slave_node);
 
@@ -1946,10 +1953,13 @@ static int cpsw_probe(struct platform_device *pdev)
/* Select default pin state */
pinctrl_pm_select_default_state(pdev-dev);
 
-   if (cpsw_probe_dt(priv-data, pdev)) {
+   ret = cpsw_probe_dt(priv-data, pdev);
+   if (ret == -EINVAL) {
pr_err(cpsw: platform data missing\n);
ret = -ENODEV;
goto clean_runtime_disable_ret;
+   } else if (ret) {
+   goto clean_runtime_disable_ret;
}
data = priv-data;
 
diff --git a/drivers/net/ethernet/ti/cpsw.h b/drivers/net/ethernet/ti/cpsw.h
index 1b71067..222eebe 100644
--- a/drivers/net/ethernet/ti/cpsw.h
+++ b/drivers/net/ethernet/ti/cpsw.h
@@ -42,4 +42,6 @@ struct cpsw_platform_data {
 
 void cpsw_phy_sel(struct device *dev, phy_interface_t phy_mode, int slave);
 
+int cpsw_ctrl_macid_read(struct device_node *np, u8 *mac_addr);
+
 #endif /* __CPSW_H__ */
-- 
1.8.5.1

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


[PATCH 5/6] arm: dts: am33xx, Add device node for cpsw-ctrl-macid

2013-12-18 Thread Markus Pargmann
Signed-off-by: Markus Pargmann m...@pengutronix.de
---
 arch/arm/boot/dts/am33xx.dtsi | 7 +++
 1 file changed, 7 insertions(+)

diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi
index f6d8ffe..4e1bf08 100644
--- a/arch/arm/boot/dts/am33xx.dtsi
+++ b/arch/arm/boot/dts/am33xx.dtsi
@@ -676,6 +676,13 @@
reg= 0x44e10650 0x4;
reg-names = gmii-sel;
};
+
+   cpsw_ctrl_macid: cpsw-ctrl-macid@44e10630 {
+   compatible = ti,am3352-cpsw-ctrl-macid;
+   #ti,mac-address-ctrl-cells = 1;
+   reg = 0x44e10630 0x16;
+   reg-names = ctrl-macid;
+   };
};
 
ocmcram: ocmcram@4030 {
-- 
1.8.5.1

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


[PATCH 0/6] net: cpsw: Support for am335x chip MACIDs

2013-12-18 Thread Markus Pargmann
Hi,

This series introduces a driver to read and use the MACIDs stored in the am335x
control module. These are read-only registers for a unique MACID. At the moment
the MACIDs are generated randomly or they are set by the bootloader.

A device node is added in am33xx dtsi and used by the cpsw slaves in the bone
board files.

Regards,

Markus


Markus Pargmann (6):
  DT doc: net: cpsw mac-address is optional
  net: cpsw: header, Add missing include
  net: cpsw: Add control-module macid driver
  net: cpsw: Use cpsw-ctrl-macid driver
  arm: dts: am33xx, Add device node for cpsw-ctrl-macid
  arm: dts: am335x beagle bone use processor macids

 .../devicetree/bindings/net/cpsw-ctrl-macid.txt|  31 +
 Documentation/devicetree/bindings/net/cpsw.txt |   7 +-
 arch/arm/boot/dts/am335x-bone.dts  |   8 ++
 arch/arm/boot/dts/am335x-boneblack.dts |   8 ++
 arch/arm/boot/dts/am33xx.dtsi  |   7 ++
 drivers/net/ethernet/ti/Kconfig|   8 ++
 drivers/net/ethernet/ti/Makefile   |   1 +
 drivers/net/ethernet/ti/cpsw-ctrl-macid.c  | 138 +
 drivers/net/ethernet/ti/cpsw.c |  18 ++-
 drivers/net/ethernet/ti/cpsw.h |   3 +
 10 files changed, 224 insertions(+), 5 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/net/cpsw-ctrl-macid.txt
 create mode 100644 drivers/net/ethernet/ti/cpsw-ctrl-macid.c

-- 
1.8.5.1

--
To unsubscribe from this list: send the line unsubscribe linux-omap 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: dts: Add basic devices for AM3517-craneboard

2013-12-18 Thread Benoit Cousson

Hi Nishanth,

On 17/12/2013 20:45, Nishanth Menon wrote:

On 12/09/2013 03:55 PM, Nishanth Menon wrote:

Craneboard is a hardware development platform based on the Sitara
AM3517 ARM Cortex - A8 microprocessor device - see [1] for more
details. Add basic devices for craneboard as replacement for the board
file scheduled for removal as part of device tree conversion

[1] http://craneboard.org

Signed-off-by: Nishanth Menon n...@ti.com
---


gentle ping.. had'nt seen a response on this patch. Could we queue
this up for v3.14-rc1?


Yep, it looks good to me.
But if you don't mind I'll start pushing my branch after Xmas :-).

Thanks,
Benoit



Based on:
git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap.git
branch: omap-for-v3.14/omap3-board-removal 736e812 ARM: OMAP2+: Remove unused 
platform init code and headers

Bootlog: http://pastebin.mozilla.org/3744412

  arch/arm/boot/dts/Makefile  |1 +
  arch/arm/boot/dts/am3517-craneboard.dts |  174 +++
  2 files changed, 175 insertions(+)
  create mode 100644 arch/arm/boot/dts/am3517-craneboard.dts

diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index fc37bca..ad155fc 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -205,6 +205,7 @@ dtb-$(CONFIG_ARCH_OMAP2PLUS) += omap2420-h4.dtb \
am335x-boneblack.dtb \
am335x-nano.dtb \
am335x-base0033.dtb \
+   am3517-craneboard.dtb \
am3517-evm.dtb \
am3517_mt_ventoux.dtb \
am43x-epos-evm.dtb \
diff --git a/arch/arm/boot/dts/am3517-craneboard.dts 
b/arch/arm/boot/dts/am3517-craneboard.dts
new file mode 100644
index 000..2d40b3f
--- /dev/null
+++ b/arch/arm/boot/dts/am3517-craneboard.dts
@@ -0,0 +1,174 @@
+/*
+ * See craneboard.org for more details
+ *
+ * Copyright (C) 2013 Texas Instruments Incorporated - http://www.ti.com/
+ *
+ * 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.
+ */
+/dts-v1/;
+
+#include am3517.dtsi
+
+/ {
+   model = TI AM3517 CraneBoard (TMDSEVM3517);
+   compatible = ti,am3517-craneboard, ti,am3517, ti,omap3;
+
+   memory {
+   device_type = memory;
+   reg = 0x8000 0x1000;/* 256 MB */
+   };
+
+   vbat: fixedregulator@0 {
+   compatible = regulator-fixed;
+   regulator-name = vbat;
+   regulator-min-microvolt = 500;
+   regulator-max-microvolt = 500;
+   regulator-boot-on;
+   };
+};
+
+davinci_emac {
+   status = okay;
+};
+
+davinci_mdio {
+   status = okay;
+};
+
+i2c1 {
+   clock-frequency = 260;
+
+   tps: tps@2d {
+   reg = 0x2d;
+   };
+};
+
+i2c2 {
+   clock-frequency = 40;
+   /* goes to expansion connector */
+   status = disabled;
+};
+
+i2c3 {
+   clock-frequency = 40;
+   /* goes to expansion connector */
+   status = disabled;
+};
+
+mmc1 {
+   vmmc-supply = vdd2_reg;
+   bus-width = 8;
+};
+
+mmc2 {
+   /* goes to expansion connector */
+   status = disabled;
+};
+
+mmc3 {
+   /* goes to expansion connector */
+   status = disabled;
+};
+
+#include tps65910.dtsi
+
+omap3_pmx_core {
+   tps_pins: pinmux_tps_pins {
+   pinctrl-single,pins = 
+   0x1b0 (PIN_INPUT_PULLUP | MUX_MODE0) /* 
sys_nirq.sys_nirq */
+   ;
+   };
+};
+
+tps {
+   pinctrl-names = default;
+   pinctrl-0 = tps_pins;
+
+   interrupts = 7; /* SYS_NIRQ cascaded to intc */
+   interrupt-parent = intc;
+
+   ti,en-ck32k-xtal;
+
+   vcc1-supply = vbat;
+   vcc2-supply = vbat;
+   vcc3-supply = vbat;
+   vcc4-supply = vbat;
+   vcc5-supply = vbat;
+   vcc6-supply = vbat;
+   vcc7-supply = vbat;
+   vccio-supply = vbat;
+
+   regulators {
+   vrtc_reg: regulator@0 {
+   regulator-always-on;
+   };
+
+   vio_reg: regulator@1 {
+   regulator-always-on;
+   };
+
+   /*
+* Unused:
+* VDIG1=2.7V,300mA max
+* VDIG2=1.8V,300mA max
+*/
+
+   vpll_reg: regulator@7 {
+   /* VDDS_DPLL_1V8 */
+   regulator-min-microvolt = 180;
+   regulator-max-microvolt = 180;
+   regulator-always-on;
+   };
+
+   vaux1_reg: regulator@9 {
+   /* VDDS_SRAM_1V8 */
+   regulator-min-microvolt = 180;
+   regulator-max-microvolt = 180;
+   regulator-always-on;
+   };
+
+   vaux2_reg: regulator@10 {
+   /* VDDA1P8V_USBPHY */
+ 

Re: [PATCH 0/6] net: cpsw: Support for am335x chip MACIDs

2013-12-18 Thread Mugunthan V N
On Wednesday 18 December 2013 10:17 PM, Markus Pargmann wrote:
 Hi,

 This series introduces a driver to read and use the MACIDs stored in the 
 am335x
 control module. These are read-only registers for a unique MACID. At the 
 moment
 the MACIDs are generated randomly or they are set by the bootloader.

 A device node is added in am33xx dtsi and used by the cpsw slaves in the bone
 board files.

 Regards,

 Markus


 Markus Pargmann (6):
   DT doc: net: cpsw mac-address is optional
   net: cpsw: header, Add missing include
   net: cpsw: Add control-module macid driver
   net: cpsw: Use cpsw-ctrl-macid driver
   arm: dts: am33xx, Add device node for cpsw-ctrl-macid
   arm: dts: am335x beagle bone use processor macids

  .../devicetree/bindings/net/cpsw-ctrl-macid.txt|  31 +
  Documentation/devicetree/bindings/net/cpsw.txt |   7 +-
  arch/arm/boot/dts/am335x-bone.dts  |   8 ++
  arch/arm/boot/dts/am335x-boneblack.dts |   8 ++
  arch/arm/boot/dts/am33xx.dtsi  |   7 ++
  drivers/net/ethernet/ti/Kconfig|   8 ++
  drivers/net/ethernet/ti/Makefile   |   1 +
  drivers/net/ethernet/ti/cpsw-ctrl-macid.c  | 138 
 +
  drivers/net/ethernet/ti/cpsw.c |  18 ++-
  drivers/net/ethernet/ti/cpsw.h |   3 +
  10 files changed, 224 insertions(+), 5 deletions(-)
  create mode 100644 Documentation/devicetree/bindings/net/cpsw-ctrl-macid.txt
  create mode 100644 drivers/net/ethernet/ti/cpsw-ctrl-macid.c

Mac ID is to be filled by U-Boot and this kind of approach is already
rejected in linux-omap list.

If proper ethaddr/eth*addr is populated in U-boot environment variable
then mac-address dt property in ethernet* device nodes will be populated
before boot kernel in U-boot. So I don't think this patch series is
required.

Regards
Mugunthan V N
--
To unsubscribe from this list: send the line unsubscribe linux-omap 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: dts: Add basic devices for AM3517-craneboard

2013-12-18 Thread Nishanth Menon

On 12/18/2013 10:57 AM, Benoit Cousson wrote:

On 17/12/2013 20:45, Nishanth Menon wrote:

On 12/09/2013 03:55 PM, Nishanth Menon wrote:

Craneboard is a hardware development platform based on the Sitara
AM3517 ARM Cortex - A8 microprocessor device - see [1] for more
details. Add basic devices for craneboard as replacement for the board
file scheduled for removal as part of device tree conversion

[1] http://craneboard.org

Signed-off-by: Nishanth Menon n...@ti.com
---


gentle ping.. had'nt seen a response on this patch. Could we queue
this up for v3.14-rc1?


Yep, it looks good to me.

Thanks benoit.


But if you don't mind I'll start pushing my branch after Xmas :-).


As long as Tony is ok with it, I have no issues either - will be great 
to have dt only boot in .14-rc1 though.

Regards,
Nishanth Menon

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


Re: [PATCH 0/6] net: cpsw: Support for am335x chip MACIDs

2013-12-18 Thread Felipe Balbi
On Wed, Dec 18, 2013 at 10:30:55PM +0530, Mugunthan V N wrote:
 On Wednesday 18 December 2013 10:17 PM, Markus Pargmann wrote:
  Hi,
 
  This series introduces a driver to read and use the MACIDs stored in the 
  am335x
  control module. These are read-only registers for a unique MACID. At the 
  moment
  the MACIDs are generated randomly or they are set by the bootloader.
 
  A device node is added in am33xx dtsi and used by the cpsw slaves in the 
  bone
  board files.
 
  Regards,
 
  Markus
 
 
  Markus Pargmann (6):
DT doc: net: cpsw mac-address is optional
net: cpsw: header, Add missing include
net: cpsw: Add control-module macid driver
net: cpsw: Use cpsw-ctrl-macid driver
arm: dts: am33xx, Add device node for cpsw-ctrl-macid
arm: dts: am335x beagle bone use processor macids
 
   .../devicetree/bindings/net/cpsw-ctrl-macid.txt|  31 +
   Documentation/devicetree/bindings/net/cpsw.txt |   7 +-
   arch/arm/boot/dts/am335x-bone.dts  |   8 ++
   arch/arm/boot/dts/am335x-boneblack.dts |   8 ++
   arch/arm/boot/dts/am33xx.dtsi  |   7 ++
   drivers/net/ethernet/ti/Kconfig|   8 ++
   drivers/net/ethernet/ti/Makefile   |   1 +
   drivers/net/ethernet/ti/cpsw-ctrl-macid.c  | 138 
  +
   drivers/net/ethernet/ti/cpsw.c |  18 ++-
   drivers/net/ethernet/ti/cpsw.h |   3 +
   10 files changed, 224 insertions(+), 5 deletions(-)
   create mode 100644 
  Documentation/devicetree/bindings/net/cpsw-ctrl-macid.txt
   create mode 100644 drivers/net/ethernet/ti/cpsw-ctrl-macid.c
 
 Mac ID is to be filled by U-Boot and this kind of approach is already
 rejected in linux-omap list.
 
 If proper ethaddr/eth*addr is populated in U-boot environment variable
 then mac-address dt property in ethernet* device nodes will be populated
 before boot kernel in U-boot. So I don't think this patch series is
 required.

but will u-boot read MACID from control module ?

-- 
balbi


signature.asc
Description: Digital signature


Re: [PATCH 0/6] net: cpsw: Support for am335x chip MACIDs

2013-12-18 Thread Mugunthan V N
On Wednesday 18 December 2013 10:38 PM, Felipe Balbi wrote:
 On Wed, Dec 18, 2013 at 10:30:55PM +0530, Mugunthan V N wrote:
 On Wednesday 18 December 2013 10:17 PM, Markus Pargmann wrote:
 Hi,

 This series introduces a driver to read and use the MACIDs stored in the 
 am335x
 control module. These are read-only registers for a unique MACID. At the 
 moment
 the MACIDs are generated randomly or they are set by the bootloader.

 A device node is added in am33xx dtsi and used by the cpsw slaves in the 
 bone
 board files.

 Regards,

 Markus


 Markus Pargmann (6):
   DT doc: net: cpsw mac-address is optional
   net: cpsw: header, Add missing include
   net: cpsw: Add control-module macid driver
   net: cpsw: Use cpsw-ctrl-macid driver
   arm: dts: am33xx, Add device node for cpsw-ctrl-macid
   arm: dts: am335x beagle bone use processor macids

  .../devicetree/bindings/net/cpsw-ctrl-macid.txt|  31 +
  Documentation/devicetree/bindings/net/cpsw.txt |   7 +-
  arch/arm/boot/dts/am335x-bone.dts  |   8 ++
  arch/arm/boot/dts/am335x-boneblack.dts |   8 ++
  arch/arm/boot/dts/am33xx.dtsi  |   7 ++
  drivers/net/ethernet/ti/Kconfig|   8 ++
  drivers/net/ethernet/ti/Makefile   |   1 +
  drivers/net/ethernet/ti/cpsw-ctrl-macid.c  | 138 
 +
  drivers/net/ethernet/ti/cpsw.c |  18 ++-
  drivers/net/ethernet/ti/cpsw.h |   3 +
  10 files changed, 224 insertions(+), 5 deletions(-)
  create mode 100644 
 Documentation/devicetree/bindings/net/cpsw-ctrl-macid.txt
  create mode 100644 drivers/net/ethernet/ti/cpsw-ctrl-macid.c

 Mac ID is to be filled by U-Boot and this kind of approach is already
 rejected in linux-omap list.

 If proper ethaddr/eth*addr is populated in U-boot environment variable
 then mac-address dt property in ethernet* device nodes will be populated
 before boot kernel in U-boot. So I don't think this patch series is
 required.
 but will u-boot read MACID from control module ?

Yes, U-Boot will read the MACID from control module and if a customer
wants to have his own MACID, U-boot ENV variable ethaddr/eth1addr must
be updated.

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


Re: [PATCH 0/6] net: cpsw: Support for am335x chip MACIDs

2013-12-18 Thread Felipe Balbi
On Wed, Dec 18, 2013 at 10:40:58PM +0530, Mugunthan V N wrote:
 On Wednesday 18 December 2013 10:38 PM, Felipe Balbi wrote:
  On Wed, Dec 18, 2013 at 10:30:55PM +0530, Mugunthan V N wrote:
  On Wednesday 18 December 2013 10:17 PM, Markus Pargmann wrote:
  Hi,
 
  This series introduces a driver to read and use the MACIDs stored in the 
  am335x
  control module. These are read-only registers for a unique MACID. At the 
  moment
  the MACIDs are generated randomly or they are set by the bootloader.
 
  A device node is added in am33xx dtsi and used by the cpsw slaves in the 
  bone
  board files.
 
  Regards,
 
  Markus
 
 
  Markus Pargmann (6):
DT doc: net: cpsw mac-address is optional
net: cpsw: header, Add missing include
net: cpsw: Add control-module macid driver
net: cpsw: Use cpsw-ctrl-macid driver
arm: dts: am33xx, Add device node for cpsw-ctrl-macid
arm: dts: am335x beagle bone use processor macids
 
   .../devicetree/bindings/net/cpsw-ctrl-macid.txt|  31 +
   Documentation/devicetree/bindings/net/cpsw.txt |   7 +-
   arch/arm/boot/dts/am335x-bone.dts  |   8 ++
   arch/arm/boot/dts/am335x-boneblack.dts |   8 ++
   arch/arm/boot/dts/am33xx.dtsi  |   7 ++
   drivers/net/ethernet/ti/Kconfig|   8 ++
   drivers/net/ethernet/ti/Makefile   |   1 +
   drivers/net/ethernet/ti/cpsw-ctrl-macid.c  | 138 
  +
   drivers/net/ethernet/ti/cpsw.c |  18 ++-
   drivers/net/ethernet/ti/cpsw.h |   3 +
   10 files changed, 224 insertions(+), 5 deletions(-)
   create mode 100644 
  Documentation/devicetree/bindings/net/cpsw-ctrl-macid.txt
   create mode 100644 drivers/net/ethernet/ti/cpsw-ctrl-macid.c
 
  Mac ID is to be filled by U-Boot and this kind of approach is already
  rejected in linux-omap list.
 
  If proper ethaddr/eth*addr is populated in U-boot environment variable
  then mac-address dt property in ethernet* device nodes will be populated
  before boot kernel in U-boot. So I don't think this patch series is
  required.
  but will u-boot read MACID from control module ?
 
 Yes, U-Boot will read the MACID from control module and if a customer
 wants to have his own MACID, U-boot ENV variable ethaddr/eth1addr must
 be updated.

cool, then I agree this series shouldn't be applied ;-)

-- 
balbi


signature.asc
Description: Digital signature


Re: [PATCH] ARM: dts: Add basic devices for AM3517-craneboard

2013-12-18 Thread Benoit Cousson

On 18/12/2013 18:02, Nishanth Menon wrote:

On 12/18/2013 10:57 AM, Benoit Cousson wrote:

On 17/12/2013 20:45, Nishanth Menon wrote:

On 12/09/2013 03:55 PM, Nishanth Menon wrote:

Craneboard is a hardware development platform based on the Sitara
AM3517 ARM Cortex - A8 microprocessor device - see [1] for more
details. Add basic devices for craneboard as replacement for the board
file scheduled for removal as part of device tree conversion

[1] http://craneboard.org

Signed-off-by: Nishanth Menon n...@ti.com
---


gentle ping.. had'nt seen a response on this patch. Could we queue
this up for v3.14-rc1?


Yep, it looks good to me.

Thanks benoit.


But if you don't mind I'll start pushing my branch after Xmas :-).


As long as Tony is ok with it, I have no issues either - will be great
to have dt only boot in .14-rc1 though.


Good point, it is already -rc4.

OK, I'll just queued it and pushed it to for_3.14/dts.

Regards,
Benoit

--
Benoît Cousson
BayLibre
Embedded Linux Technology Lab
www.baylibre.com
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCHv2 01/27] ARM: OMAP: remove DSS DT hack

2013-12-18 Thread Tony Lindgren
* Tomi Valkeinen tomi.valkei...@ti.com [131217 23:14]:
 On 2013-12-17 17:30, Tony Lindgren wrote:
  * Tomi Valkeinen tomi.valkei...@ti.com [131216 22:47]:
  On 2013-12-16 20:41, Tony Lindgren wrote:
  * Tomi Valkeinen tomi.valkei...@ti.com [131216 06:59]:
  As a temporary solution to enable DSS for selected boards when booting
  with DT, a hack was added to board-generic.c in
  63d5fc0c2f748e20f38a0a0ec1c8494bddf5c288 (OMAP: board-generic: enable
  DSS for panda  sdp boards).
 
  We're now adding proper DT support, so the hack can be removed.
 
  I guess this patch should be merged later on after we have the DT support
  working?
 
  I'll move this patch also to the end of the series.
 
  Merged later sounds like you mean this could be merged in a separate
  series. I think this and the other removal can be in this series, they
  just need to be at the end.
  
  Well yeah let's keep those separate still as at least Russell needed
  some more time with the legacy booting. The point we can drop the
  legacy booting for omap3 may still need to wait a bit, maybe even
  until v3.15 to keep things working.
 
 They can't be separate. Once I add DT support for a board, I have to
 remove the legacy support for that board. This patch removes legacy
 support for the boards that are converted in the series.

Oh OK yeah makes sense. I was worried about the legacy board-*.c files..
 
 If I don't remove the legacy support, both DT and legacy side will be
 ran, and both create the DSS devices...
 
 But, it's true that this patch removes the whole file, as all the boards
 currently there are converted. But if new boards are added to the DSS
 quirks, then I can't remove the file. So I'll change this patch to only
 remove the parts for the converted boards, not the whole file.

OK
 
 But but... If I understand right, the plan is to remove all omap3 board
 files for the next merge window. I'm not totally familiar with the
 quirks system, but how should this be handled:
 
 omap3.dtsi will contain the SoC's DSS nodes. This means that DSS devices
 are created via DT code. But if the display (i.e. panels) for a
 particular omap3 board has not been converted to DT, we should still use
 the legacy DSS initialization. But the DSS is already initialized via DT.
 
 I guess I can set the status for all the DSS nodes to disabled in
 omap3.dtsi, and that should prevent DT code from creating the DSS
 devices. Then, each omap3-board.dts that has been converted to DSS DT,
 can override those to enabled.
 
 That way the DT code should not create DSS devices by default, and the
 quirks system would probably work fine.

No need for DSS related quirks for the DT boot case. I was concerned about
the legacy board-*.c case.

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


Re: [PATCHv2 01/27] ARM: OMAP: remove DSS DT hack

2013-12-18 Thread Tony Lindgren
* Tomi Valkeinen tomi.valkei...@ti.com [131218 02:22]:
 On 2013-12-18 09:12, Tomi Valkeinen wrote:
 
  Well yeah let's keep those separate still as at least Russell needed
  some more time with the legacy booting. The point we can drop the
  legacy booting for omap3 may still need to wait a bit, maybe even
  until v3.15 to keep things working.
  
  They can't be separate. Once I add DT support for a board, I have to
  remove the legacy support for that board. This patch removes legacy
  support for the boards that are converted in the series.
  
  If I don't remove the legacy support, both DT and legacy side will be
  ran, and both create the DSS devices...
  
  But, it's true that this patch removes the whole file, as all the boards
  currently there are converted. But if new boards are added to the DSS
  quirks, then I can't remove the file. So I'll change this patch to only
  remove the parts for the converted boards, not the whole file.
  
  But but... If I understand right, the plan is to remove all omap3 board
  files for the next merge window. I'm not totally familiar with the
  quirks system, but how should this be handled:
  
  omap3.dtsi will contain the SoC's DSS nodes. This means that DSS devices
  are created via DT code. But if the display (i.e. panels) for a
  particular omap3 board has not been converted to DT, we should still use
  the legacy DSS initialization. But the DSS is already initialized via DT.
  
  I guess I can set the status for all the DSS nodes to disabled in
  omap3.dtsi, and that should prevent DT code from creating the DSS
  devices. Then, each omap3-board.dts that has been converted to DSS DT,
  can override those to enabled.
  
  That way the DT code should not create DSS devices by default, and the
  quirks system would probably work fine.
 
 I changed the DSS DT nodes to be disabled by default, and I think this
 works nicely. It's actually better this way in any case, as we can leave
 blocks like DSI out for boards that don't need it.
 
 Also, I now remove the quirks only for the boards that are converted to
 DT, not the whole dss-common.c file. So I think we can now add new
 boards to dss-common.c, if and when there are ones that cannot be
 converted to use DSS DT yet.

OK

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


Re: [PATCH 0/3] Add more device nodes for am43x gp evm.

2013-12-18 Thread Sourav Poddar

Benoit,
On Wednesday 27 November 2013 01:01 PM, Sourav Poddar wrote:

The patch series adds support for enabling gpio, pwm backlight and
matrix gpio keys on am43x-gp-evm.

Done on top of 3.13-rc1 + tero clock series(1) + Afzal's basic gp support(2).

[1]: https://patchwork.kernel.org/patch/3009541/
[2]: https://patchwork.kernel.org/patch/3171761/

Tested on am43x-gp-evm.

There is a some bug while using regulators through backlight
driver on 3.13-rc1. So, tested pwm part with this patch[3].

[3]: http://www.spinics.net/lists/arm-kernel/msg288215.html

Sourav Poddar (3):
   arm: dts: am437x-gp-evm: Enable gpio.
   ARM: dts: am43x-gp-evm: Add matrix gpio keys.
   ARM: dts: am437x-gp-evm: Add pwm backlight support.

  arch/arm/boot/dts/am437x-gp-evm.dts |   53 +++
  1 files changed, 53 insertions(+), 0 deletions(-)


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


Re: [PATCH 0/5] Add more device nodes for am43x-epos-evm

2013-12-18 Thread Sourav Poddar

Benoit,

On Wednesday 27 November 2013 01:00 PM, Sourav Poddar wrote:

The patch series adds support for enabling pwm backlight, i2c2, spi and
matrix gpio keys on am43x-gp-evm.

Done on top of 3.13-rc1 + tero clock series(1)

[1]: https://patchwork.kernel.org/patch/3009541/

Tested on am43x-gp-evm.

There is a some bug while using regulators through backlight
driver on 3.13-rc1. So, tested pwm part with this temporary patch[2].

[2]: http://www.spinics.net/lists/arm-kernel/msg288215.html

Darren Etheridge (1):
   pinctrl: am43xx: dt-bindings: add MUX_MODE8

Sourav Poddar (4):
   arm: dts: am4372: Add pwm-cellsproperty for ecap device.
   arm: dts: am43x-epos-evm: Add I2C data.
   arm: dts: am43x-epos-evm: Add SPI data.
   ARM: dts: am43x-epos-evm: Add pwm backlight support.

  arch/arm/boot/dts/am4372.dtsi|9 +
  arch/arm/boot/dts/am43x-epos-evm.dts |   67 ++
  include/dt-bindings/pinctrl/am43xx.h |1 +
  3 files changed, 77 insertions(+), 0 deletions(-)


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


Re: [PATCH 0/3] Add more device nodes for am43x gp evm.

2013-12-18 Thread Benoit Cousson

Hi Sourav,

On 18/12/2013 18:43, Sourav Poddar wrote:

Benoit,
On Wednesday 27 November 2013 01:01 PM, Sourav Poddar wrote:

The patch series adds support for enabling gpio, pwm backlight and
matrix gpio keys on am43x-gp-evm.

Done on top of 3.13-rc1 + tero clock series(1) + Afzal's basic gp
support(2).

[1]: https://patchwork.kernel.org/patch/3009541/
[2]: https://patchwork.kernel.org/patch/3171761/

Tested on am43x-gp-evm.

There is a some bug while using regulators through backlight
driver on 3.13-rc1. So, tested pwm part with this patch[3].

[3]: http://www.spinics.net/lists/arm-kernel/msg288215.html

Sourav Poddar (3):
   arm: dts: am437x-gp-evm: Enable gpio.
   ARM: dts: am43x-gp-evm: Add matrix gpio keys.
   ARM: dts: am437x-gp-evm: Add pwm backlight support.

  arch/arm/boot/dts/am437x-gp-evm.dts |   53
+++
  1 files changed, 53 insertions(+), 0 deletions(-)


Ping on this?


The series looks good, but you should rebase it on top of for_3.14/dts 
that is based on the big cleanup branch Tony has done.

I cannot apply it right now.

Thanks,
Benoit


--
Benoît Cousson
BayLibre
Embedded Linux Technology Lab
www.baylibre.com
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[GIT PULL] omap display regression fix against v3.13-rc4

2013-12-18 Thread Tony Lindgren
The following changes since commit 319e2e3f63c348a9b66db4667efa73178e18b17d:

  Linux 3.13-rc4 (2013-12-15 12:31:33 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap 
tags/omap-for-v3.13/display-fix

for you to fetch changes up to 130f769e81fc472beb2211320777e26050e3fa15:

  Revert ARM: OMAP2+: Remove legacy mux code for display.c (2013-12-17 
16:28:34 -0800)


I accidentally removed some mux code for omap4 that I thought was
dead code as omap4 has been booting with device tree only since
v3.10. Turns out I also removed some display related mux code,
so let's revert that except for the dead code parts.


Tomi Valkeinen (1):
  Revert ARM: OMAP2+: Remove legacy mux code for display.c

 arch/arm/mach-omap2/display.c | 38 ++
 1 file changed, 38 insertions(+)
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 0/3] Add more device nodes for am43x gp evm.

2013-12-18 Thread Sourav Poddar

On Wednesday 18 December 2013 11:19 PM, Benoit Cousson wrote:

Hi Sourav,

On 18/12/2013 18:43, Sourav Poddar wrote:

Benoit,
On Wednesday 27 November 2013 01:01 PM, Sourav Poddar wrote:

The patch series adds support for enabling gpio, pwm backlight and
matrix gpio keys on am43x-gp-evm.

Done on top of 3.13-rc1 + tero clock series(1) + Afzal's basic gp
support(2).

[1]: https://patchwork.kernel.org/patch/3009541/
[2]: https://patchwork.kernel.org/patch/3171761/

Tested on am43x-gp-evm.

There is a some bug while using regulators through backlight
driver on 3.13-rc1. So, tested pwm part with this patch[3].

[3]: http://www.spinics.net/lists/arm-kernel/msg288215.html

Sourav Poddar (3):
   arm: dts: am437x-gp-evm: Enable gpio.
   ARM: dts: am43x-gp-evm: Add matrix gpio keys.
   ARM: dts: am437x-gp-evm: Add pwm backlight support.

  arch/arm/boot/dts/am437x-gp-evm.dts |   53
+++
  1 files changed, 53 insertions(+), 0 deletions(-)


Ping on this?


The series looks good, but you should rebase it on top of for_3.14/dts 
that is based on the big cleanup branch Tony has done.

I cannot apply it right now.

Ok. I will rebase it and send you the series, As you can see there is 
one dependency on afzal  basic support patch, as mentioned in
the cover letter. If you are ok with that patch, it has to go first. So, 
if you wish I can work with afzal and send you this

series and afzal patch together.


Thanks,
Benoit




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


Re: OMAP display subsystem - does it work?

2013-12-18 Thread Tony Lindgren
* Tomi Valkeinen tomi.valkei...@ti.com [131218 05:56]:
 On 2013-12-18 14:00, Russell King - ARM Linux wrote:
 
  So, here goes.  LDP3430:
  
  OMAP DSS rev 2.0
  omapdss DPI error: can't get VDDS_DSI regulator
  omapfb omapfb: failed to connect default display
  omapfb omapfb: failed to init overlay connections
  omapfb omapfb: failed to setup omapfb
  platform omapfb: Driver omapfb requests probe deferral
  
  I don't see evidence of it being re-probed, but I do see this during boot
  which implies that there's nothing there:
  
  XIO:  fatal IO error 104 (Connection reset by peer) on X server :0.0
after 0 requests (0 known processed) with 0 events remaining.
 
 I don't have an LDP board at hand, and I wasn't able to find out anything from
 the logs.
 
 I think I should change omapfb to print something if it's probed succesfully,
 as the deferred probing makes finding out if something is probed fine or not
 quite murky. Without deferred probing, it was simpler: no errors - the driver
 must be (most likely) ok.
 
 Although... In an earlier log, where there was no panel driver, the log has
 these errors:
 
 Error opening /dev/fb0: No such device
 
 There are none in the latest log, which makes me guess the omapfb has been
 probed, and fb0 is actually there. But the X is still dying for some reason...
 
 I'll look at this more. Maybe someone in our team can find a board to test.

Hmm I had the framebuffer working with DT on LDP after fixing the twl4030
gpio regression with 0b2aa8bed3e1 (gpio: twl4030: Fix regression for twl
gpio output) using this pdata quirks patch:

[PATCH 3/5] ARM: OMAP2+: Add DT init code for DPI displays and make omap3 LDP 
to use it

AFAIK the pdata hack above should not be needed now, but I have not tried
with Tomi's DSS DT patches yet.

Tomi do you have some sample panel dpi .dts entry somewhere for the LDP I
could try at some point?

Russell, maybe all you're missing is just omapfb.vram=0:2M,1:5M or similar
from your kernel cmdline?

  For the SDP4430, it used to detect the displays, even though nothing has
  ever been displayed on them.  Now it just spits out this:
 
 Those particular LCDs are supposed to be updated manually using custom ioctl,
 so normal software using fb won't put anything on the display. For testing
 purposes, a SW based automatic update (~20 fps) can be enabled by kernel
 cmdline parameter omapfb.auto_update or via sysfs:
 
 echo 1  /sys/class/graphics/fb0/update_mode
 
  OMAP DSS rev 4.0
  omapdss DSI error: can't get VDDS_DSI regulator
  panel-dsi-cm panel-dsi-cm.0: Failed to connect to video source
  omapfb omapfb: failed to connect default display
  omapfb omapfb: failed to init overlay connections
  omapfb omapfb: failed to setup omapfb
  platform omapfb: Driver omapfb requests probe deferral
  ...
  omapdss DSI error: failed to set complexio power state to 1
  panel-dsi-cm panel-dsi-cm.0: failed to enable DSI
  omapfb omapfb: Failed to enable display 'lcd'
  omapfb omapfb: failed to initialize default display
  omapfb omapfb: failed to setup omapfb
 
 Commit e30b06f4d5f000c31a7747a7e7ada78a5fd419a1 (ARM: OMAP2+: Remove legacy 
 mux
 code for display.c) was overly enthusiastic in removing legacy code which was
 already in use. Tony has a partial revert for that queued up. It can also be
 reverted fully for testing. After that, the panel wakes up.

Yes sorry for accidentally removing some extra code there, I just sent a
pull request for the fix. My 4430 SDP is face down in the rack because of
the way the Ethernet connector plugs in..

Regards,

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


Re: [PATCH 0/3] Add more device nodes for am43x gp evm.

2013-12-18 Thread Benoit Cousson

On 18/12/2013 19:15, Sourav Poddar wrote:

On Wednesday 18 December 2013 11:19 PM, Benoit Cousson wrote:

Hi Sourav,

On 18/12/2013 18:43, Sourav Poddar wrote:

Benoit,
On Wednesday 27 November 2013 01:01 PM, Sourav Poddar wrote:

The patch series adds support for enabling gpio, pwm backlight and
matrix gpio keys on am43x-gp-evm.

Done on top of 3.13-rc1 + tero clock series(1) + Afzal's basic gp
support(2).

[1]: https://patchwork.kernel.org/patch/3009541/
[2]: https://patchwork.kernel.org/patch/3171761/

Tested on am43x-gp-evm.

There is a some bug while using regulators through backlight
driver on 3.13-rc1. So, tested pwm part with this patch[3].

[3]: http://www.spinics.net/lists/arm-kernel/msg288215.html

Sourav Poddar (3):
   arm: dts: am437x-gp-evm: Enable gpio.
   ARM: dts: am43x-gp-evm: Add matrix gpio keys.
   ARM: dts: am437x-gp-evm: Add pwm backlight support.

  arch/arm/boot/dts/am437x-gp-evm.dts |   53
+++
  1 files changed, 53 insertions(+), 0 deletions(-)


Ping on this?


The series looks good, but you should rebase it on top of for_3.14/dts
that is based on the big cleanup branch Tony has done.
I cannot apply it right now.


Ok. I will rebase it and send you the series, As you can see there is
one dependency on afzal  basic support patch, as mentioned in
the cover letter. If you are ok with that patch, it has to go first. So,
if you wish I can work with afzal and send you this
series and afzal patch together.


Yes, go ahead and repost the whole series with the depency.

BTW, could you do that as well with your other series?

Thanks,
Benoit
--
Benoît Cousson
BayLibre
Embedded Linux Technology Lab
www.baylibre.com
--
To unsubscribe from this list: send the line unsubscribe linux-omap 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: dts: Add support for sbc-3xxx with cm-t3730

2013-12-18 Thread Tony Lindgren
* Igor Grinberg grinb...@compulab.co.il [131218 00:47]:
 
 Acked-by: Igor Grinberg grinb...@compulab.co.il
 
 This one looks great!
 Really minor comments below (we can fix those later)

Updated patch below, then signing it off to you guys :)
 
  --- /dev/null
  +++ b/arch/arm/boot/dts/omap3-cm-t3730.dts
 
 [...]
 
  +mmc1 {
  +   vmmc-supply = vmmc1;
  +   vmmc_aux-supply = vsim;
 
 vsim is not present in TPS65930...
 can be just left empty or set to a fixed voltage regulator.

Oops right if the pins 4 - 8 are not connected, no aux regulator
is needed.
 
  --- /dev/null
  +++ b/arch/arm/boot/dts/omap3-cm-t3x30.dtsi
 
 [...]
 
  +i2c1 {
  +   clock-frequency = 260;
 
 There is also an EEPROM on this bus, although we still don't
 have it registered in the dts, but it can be registered from
 userspace and is also accessible using i2c-tools.
 This should be 400KHz max for the EEPROM to work.

OK updated that too below.

I've kept your Ack as the changes were minor. If no other
comments, I will apply this into omap-for-v3.14/dt probably
on Thursday.

Regards,

Tony

8 
From: Tony Lindgren t...@atomide.com
Date: Wed, 18 Dec 2013 13:13:21 -0800
Subject: [PATCH] ARM: dts: Add support for sbc-3xxx with cm-t3730

This adds support for CompuLab SBC-T3530, also known as cm-t3730:

http://compulab.co.il/products/sbcs/sbc-t3530/

It seems that with the sbc-3xxx mainboard is also used on
SBC-T3517 and SBC-T3730 with just a different CPU module:

http://compulab.co.il/products/sbcs/sbc-t3517/
http://compulab.co.il/products/sbcs/sbc-t3730/

So let's add a common omap3-sb-t35.dtsi and then separate SoC
specific omap3-sbc-t3730.dts, omap3-sbc-t3530.dts and
omap3-sbc-t3517.dts.

I've tested this with SBC-T3730 as that's the only one I have.
At least serial, both Ethernet controllers, MMC, and wl12xx WLAN
work.

Note that WLAN seems to be different for SBC-T3530. And SBC-T3517
may need some changes for the EMAC Ethernet if that's used
instead of the smsc911x.

Cc: devicet...@vger.kernel.org
Cc: Mike Rapoport m...@compulab.co.il
Acked-by: Igor Grinberg grinb...@compulab.co.il
Signed-off-by: Tony Lindgren t...@atomide.com

diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index fc37bca..b7af502 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -179,6 +179,8 @@ dtb-$(CONFIG_ARCH_OMAP2PLUS) += omap2420-h4.dtb \
omap2420-n810-wimax.dtb \
omap3430-sdp.dtb \
omap3-beagle.dtb \
+   omap3-cm-t3730.dtb \
+   omap3-sbc-t3730.dtb \
omap3-devkit8000.dtb \
omap3-beagle-xm.dtb \
omap3-evm.dtb \
diff --git a/arch/arm/boot/dts/omap3-cm-t3730.dts 
b/arch/arm/boot/dts/omap3-cm-t3730.dts
new file mode 100644
index 000..486f4d6
--- /dev/null
+++ b/arch/arm/boot/dts/omap3-cm-t3730.dts
@@ -0,0 +1,104 @@
+/*
+ * Support for CompuLab CM-T3730
+ */
+/dts-v1/;
+
+#include omap36xx.dtsi
+#include omap3-cm-t3x30.dtsi
+
+/ {
+   model = CompuLab CM-T3730;
+   compatible = compulab,omap3-cm-t3730, ti,omap36xx, ti,omap3;
+
+   wl12xx_vmmc2: wl12xx_vmmc2 {
+   compatible = regulator-fixed;
+   regulator-name = vw1271;
+   pinctrl-names = default;
+   pinctrl-0 = wl12xx_gpio;
+   regulator-min-microvolt = 180;
+   regulator-max-microvolt = 180;
+   gpio = gpio3 9 GPIO_ACTIVE_HIGH;   /* gpio73 */
+   startup-delay-us = 2;
+   enable-active-high;
+   };
+
+   wl12xx_vaux2: wl12xx_vaux2 {
+   compatible = regulator-fixed;
+   regulator-name = vwl1271_vaux2;
+   regulator-min-microvolt = 180;
+   regulator-max-microvolt = 180;
+   vin-supply = vaux2;
+   };
+};
+
+omap3_pmx_core {
+   mmc1_pins: pinmux_mmc1_pins {
+   pinctrl-single,pins = 
+   0x114 (PIN_OUTPUT_PULLUP | MUX_MODE0)   /* 
sdmmc1_clk.sdmmc1_clk */
+   0x116 (PIN_INPUT_PULLUP | MUX_MODE0)/* 
sdmmc1_cmd.sdmmc1_cmd */
+   0x118 (PIN_INPUT_PULLUP | MUX_MODE0)/* 
sdmmc1_dat0.sdmmc1_dat0 */
+   0x11a (PIN_INPUT_PULLUP | MUX_MODE0)/* 
sdmmc1_dat1.sdmmc1_dat1 */
+   0x11c (PIN_INPUT_PULLUP | MUX_MODE0)/* 
sdmmc1_dat2.sdmmc1_dat2 */
+   0x11e (PIN_INPUT_PULLUP | MUX_MODE0)/* 
sdmmc1_dat3.sdmmc1_dat3 */
+   ;
+   };
+
+   mmc2_pins: pinmux_mmc2_pins {
+   pinctrl-single,pins = 
+   0x128 (PIN_INPUT_PULLUP | MUX_MODE0)/* 
sdmmc2_clk.sdmmc2_clk */
+   0x12a (PIN_INPUT_PULLUP | MUX_MODE0)/* 
sdmmc2_cmd.sdmmc2_cmd */
+   0x12c (PIN_INPUT_PULLUP | MUX_MODE0)/* 
sdmmc2_dat0.sdmmc2_dat0 */
+   0x12e (PIN_INPUT_PULLUP | MUX_MODE0)/* 
sdmmc2_dat1.sdmmc2_dat1 */
+   0x130 

Re: [PATCH 1/1] drivers: net cpsw: Enable In Band mode in cpsw for 10 mbps

2013-12-18 Thread David Miller
From: Mugunthan V N mugunthan...@ti.com
Date: Fri, 13 Dec 2013 18:42:55 +0530

 This patch adds support for enabling In Band mode in 10 mbps speed.
 RGMII supports 1 Gig and 100 mbps mode for Forced mode of operation.
 For 10mbps mode it should be configured to in band mode so that link
 status, duplexity and speed are determined from the RGMII input data
 stream
 
 Signed-off-by: Mugunthan V N mugunthan...@ti.com

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


Re: [PATCH 0/4] OMAPDSS: DT support for N900 panel

2013-12-18 Thread Sebastian Reichel
On Tue, Dec 17, 2013 at 07:29:34PM +0200, Tomi Valkeinen wrote:
  I added N900 display DT support on top of my v2 series, including
  pinmuxing. Can you check if it looks right and works?
 
  git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux.git work/dss-dt
  
  I just tried it and it does not work. On a first look the pinmuxing
  looks fishy: 0x0d4 is muxed two times.
 
 Hmm, so it is.
 
 I'm not really familiar with SDI, I just muxed all the SDI pins, except
 datapair3. I previously thought that there's only the data and clock
 pairs for SDI, but the TRM revealed more sdi pins, so I included them.
 It is well possible that these can be removed:
 
 0x0d0 (PIN_OUTPUT | MUX_MODE1)   /* dss_data18.sdi_vsync */
 0x0d2 (PIN_OUTPUT | MUX_MODE1)   /* dss_data19.sdi_hsync */
 0x0d4 (PIN_OUTPUT | MUX_MODE1)   /* dss_data20.sdi_den */
 0x0d6 (PIN_OUTPUT | MUX_MODE1)   /* dss_data21.sdi_stp */

Just removing the dss_data20.sdi_den pin was enough to get a working display. I
don't know if the other pins are needed, because the display pins are already
muxed correctly by the bootloader.

-- Sebastian

diff --git a/arch/arm/boot/dts/omap3-n900.dts b/arch/arm/boot/dts/omap3-n900.dts
index 39e5e50..33f29ac 100644
--- a/arch/arm/boot/dts/omap3-n900.dts
+++ b/arch/arm/boot/dts/omap3-n900.dts
@@ -163,7 +163,7 @@
 
0x0d0 (PIN_OUTPUT | MUX_MODE1)   /* 
dss_data18.sdi_vsync */
0x0d2 (PIN_OUTPUT | MUX_MODE1)   /* 
dss_data19.sdi_hsync */
-   0x0d4 (PIN_OUTPUT | MUX_MODE1)   /* dss_data20.sdi_den 
*/
+   //0x0d4 (PIN_OUTPUT | MUX_MODE1)   /* 
dss_data20.sdi_den */
0x0d6 (PIN_OUTPUT | MUX_MODE1)   /* dss_data21.sdi_stp 
*/
0x0d8 (PIN_OUTPUT | MUX_MODE1)   /* dss_data22.sdi_clkp 
*/
0x0da (PIN_OUTPUT | MUX_MODE1)   /* dss_data23.sdi_clkn 
*/


signature.asc
Description: Digital signature


Re: [PATCH V3] usb: musb: Fix unstable init of OTG_INTERFSEL.

2013-12-18 Thread Grazvydas Ignotas
On Wed, Dec 18, 2013 at 5:35 PM, Felipe Balbi ba...@ti.com wrote:
 Hi,

 On Tue, Dec 17, 2013 at 05:48:33PM +0100, anaum...@ultratronik.de wrote:
 From: Andreas Naumann anaum...@ultratronik.de

 This is a hard to reproduce problem which leads to non-functional
 USB-OTG port in 0.1%-1% of all boots. Tracked it down to commit
 e25bec160158abe86c276d7d206264afc3646281, which introduces save/restore
 of OTG_INTERFSEL over suspend.
 Since the resume function is also called early in driver init, it uses a
 non-initialized value (which is 0 and a non-supported setting in DM37xx
 for INTERFSEL). Shortly after the correct value is set. Apparently this
 works most time, but not always.

 yeah, but the problem is not on the glue layer. The bug is omap_device
 and pm_runtime not agreeing on device's state. I suppose there was a fix
 for that recently in linux-omap@vger mailing list.

You mean this: http://marc.info/?t=13844488263r=1w=2 ?

This looks like a different issue during suspend, this problem is at
startup. Both musb_core and omap2430.c expect hardware to be disabled
on startup, and that works as expected. The problem is on first
pm_runtime_get_sync(), which results in first runtime_resume() call,
musb_core checks for first resume and doesn't load yet-unset context
in that case, however glue does and breaks things. We have this
problem since 3.2.


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


Re: [PATCH 0/4] OMAPDSS: DT support for N900 panel

2013-12-18 Thread Sebastian Reichel
On Wed, Dec 18, 2013 at 10:55:37PM +0100, Sebastian Reichel wrote:
 On Tue, Dec 17, 2013 at 07:29:34PM +0200, Tomi Valkeinen wrote:
   I added N900 display DT support on top of my v2 series, including
   pinmuxing. Can you check if it looks right and works?
  
   git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux.git work/dss-dt
   
   I just tried it and it does not work. On a first look the pinmuxing
   looks fishy: 0x0d4 is muxed two times.
  
  Hmm, so it is.
  
  I'm not really familiar with SDI, I just muxed all the SDI pins, except
  datapair3. I previously thought that there's only the data and clock
  pairs for SDI, but the TRM revealed more sdi pins, so I included them.
  It is well possible that these can be removed:
  
  0x0d0 (PIN_OUTPUT | MUX_MODE1)   /* dss_data18.sdi_vsync */
  0x0d2 (PIN_OUTPUT | MUX_MODE1)   /* dss_data19.sdi_hsync */
  0x0d4 (PIN_OUTPUT | MUX_MODE1)   /* dss_data20.sdi_den */
  0x0d6 (PIN_OUTPUT | MUX_MODE1)   /* dss_data21.sdi_stp */
 
 Just removing the dss_data20.sdi_den pin was enough to get a working display. 
 I
 don't know if the other pins are needed, because the display pins are already
 muxed correctly by the bootloader.

I just had a look in the leaked n900 schematics. According to it the
following pins are connected to the display:

DSS_DATA20 (E28) GPIO 90 LCD_RST
DSS_DATA10 (AD28)SDI_DAT1N   CDP 0
DSS_DATA11 (AD27)SDI_DAT1P   CDP 1
DSS_DATA12 (AB28)SDI_DAT2N   CDP 2
DSS_DATA13 (AB27)SDI_DAT2P   CDP 3
DSS_DATA14 (AA28)SDI_DAT3N   CDP 4
DSS_DATA15 (AA27)SDI_DAT3P   CDP 5
DSS_DATA22 (AC27)SDI_CLKPCDP 6
DSS_DATA23 (AC28)SDI_CLKNCDP 7

I also noticed that dss_data19.sdi_hsync is used as gpio 89 for the
N900's proximity sensor. Thus I suggest the following SDI pin muxing:

dss_sdi_pins: pinmux_dss_sdi_pins {
pinctrl-single,pins = 
0x0c0 (PIN_OUTPUT | MUX_MODE1)   /* 
dss_data10.sdi_dat1n */
0x0c2 (PIN_OUTPUT | MUX_MODE1)   /* 
dss_data11.sdi_dat1p */
0x0c4 (PIN_OUTPUT | MUX_MODE1)   /* 
dss_data12.sdi_dat2n */
0x0c6 (PIN_OUTPUT | MUX_MODE1)   /* 
dss_data13.sdi_dat2p */
0x0c8 (PIN_OUTPUT | MUX_MODE1)   /* 
dss_data14.sdi_dat3n */
0x0ca (PIN_OUTPUT | MUX_MODE1)   /* 
dss_data15.sdi_dat3p */

0x0d8 (PIN_OUTPUT | MUX_MODE1)   /* dss_data22.sdi_clkp 
*/
0x0da (PIN_OUTPUT | MUX_MODE1)   /* dss_data23.sdi_clkn 
*/
;
};

-- Sebastian


signature.asc
Description: Digital signature


Re: [PATCH 0/3] Add more device nodes for am43x gp evm.

2013-12-18 Thread Sourav Poddar

On Thursday 19 December 2013 12:21 AM, Benoit Cousson wrote:

On 18/12/2013 19:15, Sourav Poddar wrote:

On Wednesday 18 December 2013 11:19 PM, Benoit Cousson wrote:

Hi Sourav,

On 18/12/2013 18:43, Sourav Poddar wrote:

Benoit,
On Wednesday 27 November 2013 01:01 PM, Sourav Poddar wrote:

The patch series adds support for enabling gpio, pwm backlight and
matrix gpio keys on am43x-gp-evm.

Done on top of 3.13-rc1 + tero clock series(1) + Afzal's basic gp
support(2).

[1]: https://patchwork.kernel.org/patch/3009541/
[2]: https://patchwork.kernel.org/patch/3171761/

Tested on am43x-gp-evm.

There is a some bug while using regulators through backlight
driver on 3.13-rc1. So, tested pwm part with this patch[3].

[3]: http://www.spinics.net/lists/arm-kernel/msg288215.html

Sourav Poddar (3):
   arm: dts: am437x-gp-evm: Enable gpio.
   ARM: dts: am43x-gp-evm: Add matrix gpio keys.
   ARM: dts: am437x-gp-evm: Add pwm backlight support.

  arch/arm/boot/dts/am437x-gp-evm.dts |   53
+++
  1 files changed, 53 insertions(+), 0 deletions(-)


Ping on this?


The series looks good, but you should rebase it on top of for_3.14/dts
that is based on the big cleanup branch Tony has done.
I cannot apply it right now.


Ok. I will rebase it and send you the series, As you can see there is
one dependency on afzal  basic support patch, as mentioned in
the cover letter. If you are ok with that patch, it has to go first. So,
if you wish I can work with afzal and send you this
series and afzal patch together.


Yes, go ahead and repost the whole series with the depency.

BTW, could you do that as well with your other series?


Yes, I will do that.

Thanks,
Benoit


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


Re: OMAP display subsystem - does it work?

2013-12-18 Thread Tomi Valkeinen
On 2013-12-18 20:23, Tony Lindgren wrote:

 Hmm I had the framebuffer working with DT on LDP after fixing the twl4030
 gpio regression with 0b2aa8bed3e1 (gpio: twl4030: Fix regression for twl
 gpio output) using this pdata quirks patch:
 
 [PATCH 3/5] ARM: OMAP2+: Add DT init code for DPI displays and make omap3 LDP 
 to use it
 
 AFAIK the pdata hack above should not be needed now, but I have not tried
 with Tomi's DSS DT patches yet.
 
 Tomi do you have some sample panel dpi .dts entry somewhere for the LDP I
 could try at some point?

Hmm, I thought this was about legacy booting on v3.14-rc4. That still
uses the board files for omap3.

 Russell, maybe all you're missing is just omapfb.vram=0:2M,1:5M or similar
 from your kernel cmdline?

Nothing like that should be required for normal operation.

 Tomi




signature.asc
Description: OpenPGP digital signature


Re: [PATCH 0/4] OMAPDSS: DT support for N900 panel

2013-12-18 Thread Tomi Valkeinen
On 2013-12-19 02:51, Sebastian Reichel wrote:
 On Wed, Dec 18, 2013 at 10:55:37PM +0100, Sebastian Reichel wrote:
 On Tue, Dec 17, 2013 at 07:29:34PM +0200, Tomi Valkeinen wrote:
 I added N900 display DT support on top of my v2 series, including
 pinmuxing. Can you check if it looks right and works?

 git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux.git work/dss-dt

 I just tried it and it does not work. On a first look the pinmuxing
 looks fishy: 0x0d4 is muxed two times.

 Hmm, so it is.

 I'm not really familiar with SDI, I just muxed all the SDI pins, except
 datapair3. I previously thought that there's only the data and clock
 pairs for SDI, but the TRM revealed more sdi pins, so I included them.
 It is well possible that these can be removed:

 0x0d0 (PIN_OUTPUT | MUX_MODE1)   /* dss_data18.sdi_vsync */
 0x0d2 (PIN_OUTPUT | MUX_MODE1)   /* dss_data19.sdi_hsync */
 0x0d4 (PIN_OUTPUT | MUX_MODE1)   /* dss_data20.sdi_den */
 0x0d6 (PIN_OUTPUT | MUX_MODE1)   /* dss_data21.sdi_stp */

 Just removing the dss_data20.sdi_den pin was enough to get a working 
 display. I
 don't know if the other pins are needed, because the display pins are already
 muxed correctly by the bootloader.
 
 I just had a look in the leaked n900 schematics. According to it the
 following pins are connected to the display:
 
 DSS_DATA20 (E28) GPIO 90 LCD_RST
 DSS_DATA10 (AD28)SDI_DAT1N   CDP 0
 DSS_DATA11 (AD27)SDI_DAT1P   CDP 1
 DSS_DATA12 (AB28)SDI_DAT2N   CDP 2
 DSS_DATA13 (AB27)SDI_DAT2P   CDP 3
 DSS_DATA14 (AA28)SDI_DAT3N   CDP 4
 DSS_DATA15 (AA27)SDI_DAT3P   CDP 5
 DSS_DATA22 (AC27)SDI_CLKPCDP 6
 DSS_DATA23 (AC28)SDI_CLKNCDP 7
 
 I also noticed that dss_data19.sdi_hsync is used as gpio 89 for the
 N900's proximity sensor. Thus I suggest the following SDI pin muxing:
 
   dss_sdi_pins: pinmux_dss_sdi_pins {
   pinctrl-single,pins = 
   0x0c0 (PIN_OUTPUT | MUX_MODE1)   /* 
 dss_data10.sdi_dat1n */
   0x0c2 (PIN_OUTPUT | MUX_MODE1)   /* 
 dss_data11.sdi_dat1p */
   0x0c4 (PIN_OUTPUT | MUX_MODE1)   /* 
 dss_data12.sdi_dat2n */
   0x0c6 (PIN_OUTPUT | MUX_MODE1)   /* 
 dss_data13.sdi_dat2p */
   0x0c8 (PIN_OUTPUT | MUX_MODE1)   /* 
 dss_data14.sdi_dat3n */
   0x0ca (PIN_OUTPUT | MUX_MODE1)   /* 
 dss_data15.sdi_dat3p */
 
   0x0d8 (PIN_OUTPUT | MUX_MODE1)   /* dss_data22.sdi_clkp 
 */
   0x0da (PIN_OUTPUT | MUX_MODE1)   /* dss_data23.sdi_clkn 
 */
   ;
   };

Thanks, I'll do the modifications. The dat3 lines are not needed, but if
they're connected to the panel, I don't see any harm in muxing them.

Although, makes me wonder. If the panel supports only 2 datalanes, why
does it have connectors for 3? And if it supports 3, why would N900 use
only 2?

Are you able to check if the bootloader muxes dat3 to SDI mode?

 Tomi




signature.asc
Description: OpenPGP digital signature


Re: [PATCH] ARM: dts: Add support for sbc-3xxx with cm-t3730

2013-12-18 Thread Igor Grinberg
On 12/18/13 23:16, Tony Lindgren wrote:

[...]

 
 I've kept your Ack as the changes were minor. If no other
 comments, I will apply this into omap-for-v3.14/dt probably
 on Thursday.

Looks great! Thanks!


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