Re: [PATCH v4 0/6] staging: mt7621-pci: re-do reset boot process

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Fri, Mar 13, 2020 at 9:09 PM Sergio Paracuellos
<sergio.paracuellos@xxxxxxxxx> wrote:
>
> Some time ago Greg Ungerer reported some random hangs using
> the staging mt7621-pci driver:
>
> See:
> * http://driverdev.linuxdriverproject.org/pipermail/driverdev-devel/2019-June/134947.html
>
> Try to fix that is the main motivation of this patch series.
>
> Also in openwrt there is a driver for mt7621-pci which seems was rewritten
> from scratch (for kernel 4.14) by Ryder Lee and Weijie Gao from mediatek.
> There the approach for reset assert-deassert process is to set as 'gpio'
> the function for all the 'pcie' group for the pinctrl driver and use those
> gpio's as a reset for the end points. The driver I am talking about is still
> using legacy pci and legacy gpio kernel interfaces. IMHO, the correct thing
> to do is make this staging driver properly clean and functional and put it
> in its correct place in the mainline.
>
> See:
> * https://gist.github.com/dengqf6/7a9e9b4032d99f1a91dd9256c8a65c36
>
> Because of all of this this patch series tries to avoid random hangs of boot
> trying to use the 'reset-gpios' approach.
>
> Changes are being tested by openwrt people and seems to work.
>
> Hope this helps.
>
> Changes in v4:
> * Make use of 'devm_gpiod_get_index_optional' instead of 'devm_gpiod_get_index'.
> * Use 'dev_err' instead of 'dev_notice' and return ERR_PTR if
> 'devm_gpiod_get_index_optional' fails.
> * Rename pers dealy macro to PERST_DELAY_MS.
> * Add new patch 6 which removes function 'mt7621_reset_port' not needed anymore.

It seems this series work but due to an unknow bug set / clear gpio
registers are not properly working.
So maybe this patch is also necessary:
https://github.com/openwrt/openwrt/pull/2798/commits/823d41e28b4e15734560508b29df726b16c51dab

Should this patch be also properly added to the tree? Added Linus
Walleij and René van Dorst in order to get feedback about this issue.

I also add all the thread to get openwrt working with 5.4 in where
this patches and the gpio one have been added (just in case is
interesting for anyone):
https://github.com/openwrt/openwrt/pull/2798

Best regards,
    Sergio Paracuellos
>
> Changes in v3:
> * Avoid to fail if gpio descriptor fails on get.
> * re-do PATCH 1 commit message.
> * Take into account gpio low polarity on request and assert and deassert.
> * Review error path of driver to properly release gpio's resources.
>
> Changes in v2:
> * restore configuration for pers mode to GPIO.
> * Avoid to read FTS_NUM register in reset state.
> * Release gpio's patch added
>
> Best regards,
>     Sergio Paracuellos
>
>
> Sergio Paracuellos (6):
>   staging: mt7621-pci: use gpios for properly reset
>   staging: mt7621-pci: change value for 'PERST_DELAY_MS'
>   staging: mt7621-dts: make use of 'reset-gpios' property for pci
>   staging: mt7621-pci: bindings: update doc accordly to last changes
>   staging: mt7621-pci: release gpios after pci initialization
>   staging: mt7621-pci: delete no more needed 'mt7621_reset_port'
>
>  drivers/staging/mt7621-dts/mt7621.dtsi        |  11 +-
>  .../mt7621-pci/mediatek,mt7621-pci.txt        |   7 +-
>  drivers/staging/mt7621-pci/pci-mt7621.c       | 122 ++++++++++--------
>  3 files changed, 82 insertions(+), 58 deletions(-)
>
> --
> 2.25.1
>
_______________________________________________
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxx
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel




[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux