1. 17 7月, 2013 7 次提交
  2. 13 7月, 2013 4 次提交
    • N
      via-rhine: fix dma mapping errors · 9b4fe5fb
      Neil Horman 提交于
      this bug:
      https://bugzilla.redhat.com/show_bug.cgi?id=951695
      
      Reported a dma debug backtrace:
      
      WARNING: at lib/dma-debug.c:937 check_unmap+0x47d/0x930()
      Hardware name: To Be Filled By O.E.M.
      via-rhine 0000:00:12.0: DMA-API: device driver failed to check map error[device
      address=0x0000000075a837b2] [size=90 bytes] [mapped as single]
      Modules linked in: ip6_tables gspca_spca561 gspca_main videodev media
      snd_hda_codec_realtek snd_hda_intel i2c_viapro snd_hda_codec snd_hwdep snd_seq
      ppdev mperf via_rhine coretemp snd_pcm mii microcode snd_page_alloc snd_timer
      snd_mpu401 snd_mpu401_uart snd_rawmidi snd_seq_device snd soundcore parport_pc
      parport shpchp ata_generic pata_acpi radeon i2c_algo_bit drm_kms_helper ttm drm
      pata_via sata_via i2c_core uinput
      Pid: 295, comm: systemd-journal Not tainted 3.9.0-0.rc6.git2.1.fc20.x86_64 #1
      Call Trace:
       <IRQ>  [<ffffffff81068dd0>] warn_slowpath_common+0x70/0xa0
       [<ffffffff81068e4c>] warn_slowpath_fmt+0x4c/0x50
       [<ffffffff8137ec6d>] check_unmap+0x47d/0x930
       [<ffffffff810ace9f>] ? local_clock+0x5f/0x70
       [<ffffffff8137f17f>] debug_dma_unmap_page+0x5f/0x70
       [<ffffffffa0225edc>] ? rhine_ack_events.isra.14+0x3c/0x50 [via_rhine]
       [<ffffffffa02275f8>] rhine_napipoll+0x1d8/0xd80 [via_rhine]
       [<ffffffff815d3d51>] ? net_rx_action+0xa1/0x380
       [<ffffffff815d3e22>] net_rx_action+0x172/0x380
       [<ffffffff8107345f>] __do_softirq+0xff/0x400
       [<ffffffff81073925>] irq_exit+0xb5/0xc0
       [<ffffffff81724cd6>] do_IRQ+0x56/0xc0
       [<ffffffff81719ff2>] common_interrupt+0x72/0x72
       <EOI>  [<ffffffff8170ff57>] ? __slab_alloc+0x4c2/0x526
       [<ffffffff811992e0>] ? mmap_region+0x2b0/0x5a0
       [<ffffffff810d5807>] ? __lock_is_held+0x57/0x80
       [<ffffffff811992e0>] ? mmap_region+0x2b0/0x5a0
       [<ffffffff811bf1bf>] kmem_cache_alloc+0x2df/0x360
       [<ffffffff811992e0>] mmap_region+0x2b0/0x5a0
       [<ffffffff811998e6>] do_mmap_pgoff+0x316/0x3d0
       [<ffffffff81183ca0>] vm_mmap_pgoff+0x90/0xc0
       [<ffffffff81197d6c>] sys_mmap_pgoff+0x4c/0x190
       [<ffffffff81367d7e>] ? trace_hardirqs_on_thunk+0x3a/0x3f
       [<ffffffff8101eb42>] sys_mmap+0x22/0x30
       [<ffffffff81722fd9>] system_call_fastpath+0x16/0x1b
      
      Usual problem with the usual fix, add the appropriate calls to dma_mapping_error
      where appropriate
      
      Untested, as I don't have hardware, but its pretty straightforward
      Signed-off-by: NNeil Horman <nhorman@tuxdriver.com>
      CC: David S. Miller <davem@davemloft.net>
      CC: Roger Luethi <rl@hellgate.ch>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      9b4fe5fb
    • N
      atl1e: fix dma mapping warnings · 352900b5
      Neil Horman 提交于
      Recently had this backtrace reported:
      WARNING: at lib/dma-debug.c:937 check_unmap+0x47d/0x930()
      Hardware name: System Product Name
      ATL1E 0000:02:00.0: DMA-API: device driver failed to check map error[device
      address=0x00000000cbfd1000] [size=90 bytes] [mapped as single]
      Modules linked in: xt_conntrack nf_conntrack ebtable_filter ebtables
      ip6table_filter ip6_tables snd_hda_codec_hdmi snd_hda_codec_realtek iTCO_wdt
      iTCO_vendor_support snd_hda_intel acpi_cpufreq mperf coretemp btrfs zlib_deflate
      snd_hda_codec snd_hwdep microcode raid6_pq libcrc32c snd_seq usblp serio_raw xor
      snd_seq_device joydev snd_pcm snd_page_alloc snd_timer snd lpc_ich i2c_i801
      soundcore mfd_core atl1e asus_atk0110 ata_generic pata_acpi radeon i2c_algo_bit
      drm_kms_helper ttm drm i2c_core pata_marvell uinput
      Pid: 314, comm: systemd-journal Not tainted 3.9.0-0.rc6.git2.3.fc19.x86_64 #1
      Call Trace:
       <IRQ>  [<ffffffff81069106>] warn_slowpath_common+0x66/0x80
       [<ffffffff8106916c>] warn_slowpath_fmt+0x4c/0x50
       [<ffffffff8138151d>] check_unmap+0x47d/0x930
       [<ffffffff810ad048>] ? sched_clock_cpu+0xa8/0x100
       [<ffffffff81381a2f>] debug_dma_unmap_page+0x5f/0x70
       [<ffffffff8137ce30>] ? unmap_single+0x20/0x30
       [<ffffffffa01569a1>] atl1e_intr+0x3a1/0x5b0 [atl1e]
       [<ffffffff810d53fd>] ? trace_hardirqs_off+0xd/0x10
       [<ffffffff81119636>] handle_irq_event_percpu+0x56/0x390
       [<ffffffff811199ad>] handle_irq_event+0x3d/0x60
       [<ffffffff8111cb6a>] handle_fasteoi_irq+0x5a/0x100
       [<ffffffff8101c36f>] handle_irq+0xbf/0x150
       [<ffffffff811dcb2f>] ? file_sb_list_del+0x3f/0x50
       [<ffffffff81073b10>] ? irq_enter+0x50/0xa0
       [<ffffffff8172738d>] do_IRQ+0x4d/0xc0
       [<ffffffff811dcb2f>] ? file_sb_list_del+0x3f/0x50
       [<ffffffff8171c6b2>] common_interrupt+0x72/0x72
       <EOI>  [<ffffffff810db5b2>] ? lock_release+0xc2/0x310
       [<ffffffff8109ea04>] lg_local_unlock_cpu+0x24/0x50
       [<ffffffff811dcb2f>] file_sb_list_del+0x3f/0x50
       [<ffffffff811dcb6d>] fput+0x2d/0xc0
       [<ffffffff811d8ea1>] filp_close+0x61/0x90
       [<ffffffff811fae4d>] __close_fd+0x8d/0x150
       [<ffffffff811d8ef0>] sys_close+0x20/0x50
       [<ffffffff81725699>] system_call_fastpath+0x16/0x1b
      
      The usual straighforward failure to check for dma_mapping_error after a map
      operation is completed.
      
      This patch should fix it, the reporter wandered off after filing this bz:
      https://bugzilla.redhat.com/show_bug.cgi?id=954170
      
      and I don't have hardware to test, but the fix is pretty straightforward, so I
      figured I'd post it for review.
      Signed-off-by: NNeil Horman <nhorman@tuxdriver.com>
      CC: Jay Cliburn <jcliburn@gmail.com>
      CC: Chris Snook <chris.snook@gmail.com>
      CC: "David S. Miller" <davem@davemloft.net>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      352900b5
    • H
      usb/net/r815x: fix cast to restricted __le32 · e7638524
      hayeswang 提交于
      >> drivers/net/usb/r815x.c:38:16: sparse: cast to restricted __le32
      >> drivers/net/usb/r815x.c:67:15: sparse: cast to restricted __le32
      >> drivers/net/usb/r815x.c:69:13: sparse: incorrect type in assignment (different base types)
         drivers/net/usb/r815x.c:69:13:    expected unsigned int [unsigned] [addressable] [assigned] [usertype] tmp
         drivers/net/usb/r815x.c:69:13:    got restricted __le32 [usertype] <noident>
      Signed-off-by: NHayes Wang <hayeswang@realtek.com>
      Spotted-by: Nkbuild test robot <fengguang.wu@intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e7638524
    • H
      usb/net/r8152: fix integer overflow in expression · 3ff25e3c
      hayeswang 提交于
      config: make ARCH=avr32 allyesconfig
      drivers/net/usb/r8152.c: In function 'rtl8152_start_xmit':
      drivers/net/usb/r8152.c:956: warning: integer overflow in expression
      
         955	memset(tx_desc, 0, sizeof(*tx_desc));
       > 956	tx_desc->opts1 = cpu_to_le32((len & TX_LEN_MASK) | TX_FS | TX_LS);
         957	tp->tx_skb = skb;
      Signed-off-by: NHayes Wang <hayeswang@realtek.com>
      Spotted-by: Nkbuild test robot <fengguang.wu@intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3ff25e3c
  3. 12 7月, 2013 12 次提交
    • W
      drivers/net/ieee802154: don't use devm_pinctrl_get_select_default() in probe · fdb70270
      Wolfram Sang 提交于
      Since commit ab78029e (drivers/pinctrl: grab default handles from device core),
      we can rely on device core for setting the default pins. Compile tested only.
      
      Acked-by: Linus Walleij <linus.walleij@linaro.org> (personally at LCE13)
      Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      fdb70270
    • W
      drivers/net/ethernet/cadence: don't use devm_pinctrl_get_select_default() in probe · 54842ec2
      Wolfram Sang 提交于
      Since commit ab78029e (drivers/pinctrl: grab default handles from device core),
      we can rely on device core for setting the default pins. Compile tested only.
      
      Acked-by: Linus Walleij <linus.walleij@linaro.org> (personally at LCE13)
      Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
      Acked-by: NNicolas Ferre <nicolas.ferre@atmel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      54842ec2
    • W
      drivers/net/can/c_can: don't use devm_pinctrl_get_select_default() in probe · d25903f8
      Wolfram Sang 提交于
      Since commit ab78029e (drivers/pinctrl: grab default handles from device core),
      we can rely on device core for setting the default pins. Compile tested only.
      
      Acked-by: Linus Walleij <linus.walleij@linaro.org> (personally at LCE13)
      Signed-off-by: NWolfram Sang <wsa@the-dreams.de>
      Acked-by: NMarc Kleine-Budde <mkl@pengutronix.de>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d25903f8
    • H
      net/usb: add relative mii functions for r815x · c073f666
      hayeswang 提交于
      Base on cdc_ether, add the mii functions for RTL8152 and RTL8153.
      The RTL8152 and RTL8153 support ECM mode which use the driver of
      cdc_ether. Add the mii functions. Then, the basic PHY access is
      possible.
      Signed-off-by: NHayes Wang <hayeswang@realtek.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c073f666
    • D
      mlx5: Return -EFAULT instead of -EPERM · 5e631a03
      Dan Carpenter 提交于
      For copy_to/from_user() failure, the correct error code is -EFAULT not
      -EPERM.
      Signed-off-by: NDan Carpenter <dan.carpenter@oracle.com>
      Acked-by: NOr Gerlitz <ogerlitz@mellanox.com>
      Signed-off-by: NRoland Dreier <roland@purestorage.com>
      5e631a03
    • M
      mlx5_core: Adjust hca_cap.uar_page_sz to conform to Connect-IB spec · 288dde9f
      Moshe Lazer 提交于
      Sparse reported an endianness bug in the assignment to hca_cap.uar_page_sz.
      
      Fix the declaration of this field to be __be16 (which is what is in
      the firmware spec), renaming the field to log_uar_pg_size to conform
      to the spec, which fixes the endianness bug reported by sparse.
      Reported-by: NFengguang Wu <fengguang.wu@intel.com>
      Signed-off-by: NMoshe Lazer <moshel@mellanox.com>
      Signed-off-by: NOr Gerlitz <ogerlitz@mellanox.com>
      Signed-off-by: NRoland Dreier <roland@purestorage.com>
      288dde9f
    • D
      ifb: fix oops when loading the ifb failed · f2966cd5
      dingtianhong 提交于
      If __rtnl_link_register() return faild when loading the ifb, it will
      take the wrong path and get oops, so fix it just like dummy.
      Signed-off-by: NDing Tianhong <dingtianhong@huawei.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f2966cd5
    • D
      dummy: fix oops when loading the dummy failed · 2c8a0189
      dingtianhong 提交于
      We rename the dummy in modprobe.conf like this:
      
      install dummy0 /sbin/modprobe -o dummy0 --ignore-install dummy
      install dummy1 /sbin/modprobe -o dummy1 --ignore-install dummy
      
      We got oops when we run the command:
      
      modprobe dummy0
      modprobe dummy1
      
      ------------[ cut here ]------------
      
      [ 3302.187584] BUG: unable to handle kernel NULL pointer dereference at 0000000000000008
      [ 3302.195411] IP: [<ffffffff813fe62a>] __rtnl_link_unregister+0x9a/0xd0
      [ 3302.201844] PGD 85c94a067 PUD 8517bd067 PMD 0
      [ 3302.206305] Oops: 0002 [#1] SMP
      [ 3302.299737] task: ffff88105ccea300 ti: ffff880eba4a0000 task.ti: ffff880eba4a0000
      [ 3302.307186] RIP: 0010:[<ffffffff813fe62a>]  [<ffffffff813fe62a>] __rtnl_link_unregister+0x9a/0xd0
      [ 3302.316044] RSP: 0018:ffff880eba4a1dd8  EFLAGS: 00010246
      [ 3302.321332] RAX: 0000000000000000 RBX: ffffffff81a9d738 RCX: 0000000000000002
      [ 3302.328436] RDX: 0000000000000000 RSI: ffffffffa04d602c RDI: ffff880eba4a1dd8
      [ 3302.335541] RBP: ffff880eba4a1e18 R08: dead000000200200 R09: dead000000100100
      [ 3302.342644] R10: 0000000000000080 R11: 0000000000000003 R12: ffffffff81a9d788
      [ 3302.349748] R13: ffffffffa04d7020 R14: ffffffff81a9d670 R15: ffff880eba4a1dd8
      [ 3302.364910] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [ 3302.370630] CR2: 0000000000000008 CR3: 000000085e15e000 CR4: 00000000000427e0
      [ 3302.377734] DR0: 0000000000000003 DR1: 00000000000000b0 DR2: 0000000000000001
      [ 3302.384838] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
      [ 3302.391940] Stack:
      [ 3302.393944]  ffff880eba4a1dd8 ffff880eba4a1dd8 ffff880eba4a1e18 ffffffffa04d70c0
      [ 3302.401350]  00000000ffffffef ffffffffa01a8000 0000000000000000 ffffffff816111c8
      [ 3302.408758]  ffff880eba4a1e48 ffffffffa01a80be ffff880eba4a1e48 ffffffffa04d70c0
      [ 3302.416164] Call Trace:
      [ 3302.418605]  [<ffffffffa01a8000>] ? 0xffffffffa01a7fff
      [ 3302.423727]  [<ffffffffa01a80be>] dummy_init_module+0xbe/0x1000 [dummy0]
      [ 3302.430405]  [<ffffffffa01a8000>] ? 0xffffffffa01a7fff
      [ 3302.435535]  [<ffffffff81000322>] do_one_initcall+0x152/0x1b0
      [ 3302.441263]  [<ffffffff810ab24b>] do_init_module+0x7b/0x200
      [ 3302.446824]  [<ffffffff810ad3d2>] load_module+0x4e2/0x530
      [ 3302.452215]  [<ffffffff8127ae40>] ? ddebug_dyndbg_boot_param_cb+0x60/0x60
      [ 3302.458979]  [<ffffffff810ad5f1>] SyS_init_module+0xd1/0x130
      [ 3302.464627]  [<ffffffff814b9652>] system_call_fastpath+0x16/0x1b
      [ 3302.490090] RIP  [<ffffffff813fe62a>] __rtnl_link_unregister+0x9a/0xd0
      [ 3302.496607]  RSP <ffff880eba4a1dd8>
      [ 3302.500084] CR2: 0000000000000008
      [ 3302.503466] ---[ end trace 8342d49cd49f78ed ]---
      
      The reason is that when loading dummy, if __rtnl_link_register() return failed,
      the init_module should return and avoid take the wrong path.
      Signed-off-by: NTan Xiaojun <tanxiaojun@huawei.com>
      Signed-off-by: NDing Tianhong <dingtianhong@huawei.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      2c8a0189
    • H
      drivers: net: phy: at803x: Add missing mdio device id · ce9a1bf8
      Helmut Schaa 提交于
      at803x supports Atheros 8030, 8031 and 8035 PHYs. 8031 was missing from
      the mdio device id table.
      Signed-off-by: NHelmut Schaa <helmut.schaa@googlemail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ce9a1bf8
    • D
      bnx2x: fix tunneling CSUM calculation · 1b4fc0e2
      Dmitry Kravkov 提交于
      Since commit c957d09f
      "bnx2x: Remove sparse and coccinelle warnings"
      driver provided wrong partial csum for HW in tunneing
      scenarios.
      Reported-by: NEric Dumazet <eric.dumazet@gmail.com>
      CC: Alexander Duyck <alexander.h.duyck@intel.com>
      CC: Pravin Shelar <pshelar@nicira.com>
      CC: Cong Wang <xiyou.wangcong@gmail.com>
      Signed-off-by: NDmitry Kravkov <dmitry@broadcom.com>
      Tested-by: NEric Dumazet <edumazet@google.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      1b4fc0e2
    • M
      alx: fix lockdep annotation · a8798a5c
      Maarten Lankhorst 提交于
      Move spin_lock_init to be called before the spinlocks are used, preventing a lockdep splat.
      Signed-off-by: NMaarten Lankhorst <maarten.lankhorst@canonical.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a8798a5c
    • P
      vxlan: Fix kernel crash on rmmod. · f89e57c4
      Pravin B Shelar 提交于
      vxlan exit module unregisters vxlan net and then it unregisters
      rtnl ops which triggers vxlan_dellink() from __rtnl_kill_links().
      vxlan_dellink() deletes vxlan-dev from vxlan_list which has
      list-head in vxlan-net-struct but that is already gone due to
      net-unregister. That is how we are getting following crash.
      
      Following commit fixes the crash by fixing module exit path.
      
      BUG: unable to handle kernel paging request at ffff8804102c8000
      IP: [<ffffffff812cc5e9>] __list_del_entry+0x29/0xd0
      PGD 2972067 PUD 83e019067 PMD 83df97067 PTE 80000004102c8060
      Oops: 0000 [#1] SMP DEBUG_PAGEALLOC
      Modules linked in: ---
      CPU: 19 PID: 6712 Comm: rmmod Tainted: GF            3.10.0+ #95
      Hardware name: Dell Inc. PowerEdge R620/0KCKR5, BIOS 1.4.8 10/25/2012
      task: ffff88080c47c580 ti: ffff88080ac50000 task.ti: ffff88080ac50000
      RIP: 0010:[<ffffffff812cc5e9>]  [<ffffffff812cc5e9>]
      __list_del_entry+0x29/0xd0
      RSP: 0018:ffff88080ac51e08  EFLAGS: 00010206
      RAX: ffff8804102c8000 RBX: ffff88040f0d4b10 RCX: dead000000200200
      RDX: ffff8804102c8000 RSI: ffff88080ac51e58 RDI: ffff88040f0d4b10
      RBP: ffff88080ac51e08 R08: 0000000000000001 R09: 2222222222222222
      R10: 2222222222222222 R11: 2222222222222222 R12: ffff88080ac51e58
      R13: ffffffffa07b8840 R14: ffffffff81ae48c0 R15: ffff88080ac51e58
      FS:  00007f9ef105c700(0000) GS:ffff88082a800000(0000)
      knlGS:0000000000000000
      CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      CR2: ffff8804102c8000 CR3: 00000008227e5000 CR4: 00000000000407e0
      DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
      Stack:
       ffff88080ac51e28 ffffffff812cc6a1 2222222222222222 ffff88040f0d4000
       ffff88080ac51e48 ffffffffa07b3311 ffff88040f0d4000 ffffffff81ae49c8
       ffff88080ac51e98 ffffffff81492fc2 ffff88080ac51e58 ffff88080ac51e58
      Call Trace:
       [<ffffffff812cc6a1>] list_del+0x11/0x40
       [<ffffffffa07b3311>] vxlan_dellink+0x51/0x70 [vxlan]
       [<ffffffff81492fc2>] __rtnl_link_unregister+0xa2/0xb0
       [<ffffffff8149448e>] rtnl_link_unregister+0x1e/0x30
       [<ffffffffa07b7b7c>] vxlan_cleanup_module+0x1c/0x2f [vxlan]
       [<ffffffff810c9b31>] SyS_delete_module+0x1d1/0x2c0
       [<ffffffff812b8a0e>] ? trace_hardirqs_on_thunk+0x3a/0x3f
       [<ffffffff81582f42>] system_call_fastpath+0x16/0x1b
      Code: eb 9f 55 48 8b 17 48 b9 00 01 10 00 00 00 ad de 48 8b 47 08 48 89
      e5 48 39 ca 74 29 48 b9 00 02 20 00 00 00 ad de 48 39 c8 74 7a <4c> 8b
      00 4c 39 c7 75 53 4c 8b 42 08 4c 39 c7 75 2b 48 89 42 08
      RIP  [<ffffffff812cc5e9>] __list_del_entry+0x29/0xd0
       RSP <ffff88080ac51e08>
      CR2: ffff8804102c8000
      Signed-off-by: NPravin B Shelar <pshelar@nicira.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f89e57c4
  4. 11 7月, 2013 8 次提交
  5. 10 7月, 2013 5 次提交
  6. 09 7月, 2013 2 次提交
  7. 05 7月, 2013 2 次提交
    • B
      sfc: Fix memory leak when discarding scattered packets · 734d4e15
      Ben Hutchings 提交于
      Commit 2768935a ('sfc: reuse pages to avoid DMA mapping/unmapping
      costs') did not fully take account of DMA scattering which was
      introduced immediately before.  If a received packet is invalid and
      must be discarded, we only drop a reference to the first buffer's
      page, but we need to drop a reference for each buffer the packet
      used.
      
      I think this bug was missed partly because efx_recycle_rx_buffers()
      was not renamed and so no longer does what its name says.  It does not
      change the state of buffers, but only prepares the underlying pages
      for recycling.  Rename it accordingly.
      Signed-off-by: NBen Hutchings <bhutchings@solarflare.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      734d4e15
    • S
      dt:net:stmmac: Add dt specific phy reset callback support. · 0e076471
      Srinivas Kandagatla 提交于
      This patch adds phy reset callback support for stmmac driver via device
      trees. It adds three new properties to gmac device tree bindings to
      define the reset signal via gpio.
      
      With this patch users can conveniently pass reset gpio number with pre,
      pulse and post delay in micro secs via DTs.
      
       active low:
      		_________		 ____________
      	<pre-delay>	|<pulse-delay>	|<post-delay>
      		 	|		|
      		 	|_______________|
      
       active high:
       			 ________________
      	<pre-delay>	|<pulse-delay>	|<post-delay>
      			|		|
      		________|		|___________
      Signed-off-by: NSrinivas Kandagatla <srinivas.kandagatla@st.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      0e076471