Re: [OpenWrt-Devel] DSL support and luci integration

2012-01-21 Thread Lee Essen

On 20 Jan 2012, at 23:47, Philip Prindeville wrote:

 I'd sure like to see netlink being used to communicate speed/carrier changes 
 up into userspace.
 

Unfortunately there's absolutely no netlink support in the lantiq driver and I 
don't think any of that info is available elsewhere, I would have thought 
trying to add a netlink capability would be a bit extreme? (and probably well 
outside my capability) … and that would then need to be done for every 
subsequent DSL driver to maintain standardisation.

There is an ioctl interface, which also works without the daemon running, which 
I did consider, but my thought was that this would require an extra binary to 
maintain (unless there's a simple lua ioctl interface, but I couldn't find one) 
and would have a lot less transparency than a script -- but I'm happy to knock 
something up to make use of this if it's considered a better approach.

Regards,

Lee.

___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


Re: [OpenWrt-Devel] [PATCH] Add mostly complete support for Sitecom WL-341 v3 and other Sercomm IP1006RRv2 based boards

2012-01-21 Thread Roman Yeryomin
On 21 January 2012 00:53, Marco Antonio Mauro marcu...@gmail.com wrote:
 This patch adds support for the Sitecom WL-341 v3 and other Sercomm
 IP1006RRv2 based boards for sysupgrade support and for the initial
 flash through pushbutton initiated recovery mode with the special
 partition table and fixes for the quirks and things required by the
 modified bootloader.

 There are two known bugs:

 1. The LED configuration is broken -- only one led is working, an
 amber led, as I found no way to know which GPIOs were used for those.
 The board has 6 unlabeled leds, of which 1 is blue only and 5 are
 amber/blue. If I understand which GPIOs go to which leds I'll submit a
 patch later.

I had this problem too and wrote a script to test gpios for leds and
buttons (see attachment).
Hope it'll help you (and maybe someone else).
Note that it will not help if your leds are connected via shift
registers (as on Belkin boards).

 2. Wi-Fi is not working on my board probably because of the lack of
 RAM (the board only has 16MiB ram, but there is an empty slot for
 another ram chip,) but I don't know for sure. The driver loads but
 hostapd fails to load so I think it's not related to the specific
 device except for the lack of RAM.

That's very strange, I don't have such problem with my 4/16 MB
Sparklan WCR-150GN.
I don't quite understand how it could be that it's low RAM problem if
all kernel modules are loaded _before_ everything else?


Regards,
Roman


blinker
Description: Binary data
___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


Re: [OpenWrt-Devel] DSL support and luci integration

2012-01-21 Thread John Crispin
On 21/01/12 09:18, Lee Essen wrote:
 
 On 20 Jan 2012, at 23:47, Philip Prindeville wrote:
 
 I'd sure like to see netlink being used to communicate speed/carrier changes 
 up into userspace.

 
 Unfortunately there's absolutely no netlink support in the lantiq driver and 
 I don't think any of that info is available elsewhere, I would have thought 
 trying to add a netlink capability would be a bit extreme? (and probably well 
 outside my capability) … and that would then need to be done for every 
 subsequent DSL driver to maintain standardisation.
 
 There is an ioctl interface, which also works without the daemon running, 
 which I did consider, but my thought was that this would require an extra 
 binary to maintain (unless there's a simple lua ioctl interface, but I 
 couldn't find one) and would have a lot less transparency than a script -- 
 but I'm happy to knock something up to make use of this if it's considered a 
 better approach.
 

as far as i can tell the patch looks fine.


___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


[OpenWrt-Devel] DWC OTG USB, round 3 (was: hardware driver - gadget driver...)

2012-01-21 Thread Nikolai Zhubr

Hello Paul and Alan,
21.01.2012 1:17, Paul Zimmerman:

On Fri, 20 Jan 2012, Alan Stern wrote:


This is a serious problem.  The gadget API does not specify whether
usb_ep_enable and usb_ep_disable should be able to run in interrupt
context.  Consequently we end up with UDC drivers like your DWC thing
in which the routines cannot run in interrupt context, together with
gadget drivers like g_serial which do call them in interrupt context.

It may be that the best solution is for the composite.c driver to
implement Set-Config and Set-Interface requests in a workqueue, so that
the calls could be made in process context.  For now, you can avoid the
problem by not calling dma_alloc_coherent in your endpoint-setup
routine.

g_file_storage doesn't have this problem because it uses its own kernel
thread for handling these requests.


Actually, dma_alloc_coherent() takes a gfp_t parameter, so you should be
able to set GFP_ATOMIC and do the allocation from interrupt context.

The problem comes from dma_free_coherent(). It unconditionally checks for
being called in process context, and gives a warning if not. This check was
added a year or two ago, for something in the ARM architecture IIRC. I keep
expecting that this will get fixed at some point, but so far it hasn't.

Based on your comments I decided to move some preparations to a 
workqueue and there are no issues with those allocations anymore.


I've now finally got g_serial fully recognised on another side (by host 
PC) and was even able to open the respective serial device there, but 
unfortunately for that to succeed I had to also disable (just throw 
away) all requests for EPs != 0 (I did this in ep_queue in dwc driver, 
if matters). Without that, controller starts raising IN Token Received 
with EP mismatch instead of normal Transfer complete bit. If I 
understand it correctly, this means that Tx FIFO happened to be filled 
in some particular order that controller disliked (and refused). I've 
also found a fragment of code with possibly relevant comment (quoted 
below). Indeed, apparently this EP mismatch event is not handled 
anywhere in the driver (other than providing a line for dmesg). If it 
should, then I'd guess it means the driver is just plain unfininshed and 
I have no idea if it can even be fixed with a reasonable effort. Not 
sure what was meant exactly by one endpoint at once though.. Of course 
usefull gadget drivers would probably employ  1 EPs, even 
g_file_storage does so? Strange thing.


Thank you.
Nikolai

/* Reactive the EP */
dwc_otg_ep_activate(GET_CORE_IF(pcd), ep-dwc_ep);
if (ep-stopped) {
ep-stopped = 0;
/* If there is a request in the EP queue start it */

/** @todo FIXME: this causes an EP mismatch in DMA mode.
 * epmismatch not yet implemented. */

/*
 * Above fixme is solved by implmenting a tasklet to call the
 * start_next_request(), outside of interrupt context at some
 * time after the current time, after a clear-halt setup packet.
 * Still need to implement ep mismatch in the future if a gadget
 * ever uses more than one endpoint at once
 */
ep-queue_sof = 1;
tasklet_schedule (pcd-start_xfer_tasklet);
}
/* Start Control Status Phase */
do_setup_in_status_phase(pcd);

___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel


Re: [OpenWrt-Devel] [PATCH] ramips: Rework ramips_eth to not require irqsave locking anymore

2012-01-21 Thread Roman Yeryomin
On 17 January 2012 11:42, Helmut Schaa helmut.sc...@googlemail.com wrote:
 @@ -313,6 +312,7 @@ ramips_eth_tx_housekeeping(unsigned long ptr)
        struct net_device *dev = (struct net_device*)ptr;
        struct raeth_priv *priv = netdev_priv(dev);

 +       spin_lock(priv-page_lock);
        while ((priv-tx[priv-skb_free_idx].txd2  TX_DMA_DONE) 
               (priv-tx_skb[priv-skb_free_idx])) {
                dev_kfree_skb_irq(priv-tx_skb[priv-skb_free_idx]);
 @@ -321,6 +321,7 @@ ramips_eth_tx_housekeeping(unsigned long ptr)
                if (priv-skb_free_idx = NUM_TX_DESC)
                        priv-skb_free_idx = 0;
        }
 +       spin_unlock(priv-page_lock);

        ramips_fe_int_enable(RAMIPS_TX_DLY_INT);
  }

Seems that spinlock here introduces performance hit in wifi-eth path.
Are you sure it's needed? Seems that it works fine also without this spinlock.

Regards,
Roman
___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel