Re: [PATCH v13 0/6] Cavium MMC driver

2017-04-12 Thread Steven J. Hill
On 04/12/2017 05:37 PM, Aaro Koskinen wrote:
> 
> Please rather post a new version that also works with OCTEON. I don't
> think a partial driver should be merged; originally this driver was
> working fine with OCTEON so there should be no issue supporting that?!
>
Hey Aaro.

The difference is that Jan added scatter/gather support to take
advantage of the DMA FIFOs on Thunder. The same FIFOs exist on
Octeon parts 73xx, 76xx, 78xx, CNF73xx, and CNF75xx to name a
few. In order to support those, portions of the Octeon platform
code had to be rewritten as well as minor changes in the core
Cavium driver code. I have a fully tested patchset that cleanly
applies on top of Jan's v13 driver. My personal preference is
for the Octeon code to be a separate patch. I will defer that
decision to Jan, David and the MMC maintainers.

Steve


Re: [PATCH v13 0/6] Cavium MMC driver

2017-04-12 Thread Steven J. Hill
On 04/12/2017 05:37 PM, Aaro Koskinen wrote:
> 
> Please rather post a new version that also works with OCTEON. I don't
> think a partial driver should be merged; originally this driver was
> working fine with OCTEON so there should be no issue supporting that?!
>
Hey Aaro.

The difference is that Jan added scatter/gather support to take
advantage of the DMA FIFOs on Thunder. The same FIFOs exist on
Octeon parts 73xx, 76xx, 78xx, CNF73xx, and CNF75xx to name a
few. In order to support those, portions of the Octeon platform
code had to be rewritten as well as minor changes in the core
Cavium driver code. I have a fully tested patchset that cleanly
applies on top of Jan's v13 driver. My personal preference is
for the Octeon code to be a separate patch. I will defer that
decision to Jan, David and the MMC maintainers.

Steve


Re: [PATCH v13 0/6] Cavium MMC driver

2017-04-12 Thread Aaro Koskinen
Hi,

On Thu, Mar 30, 2017 at 05:31:22PM +0200, Jan Glauber wrote:
> Hi Ulf,
> 
> we have a bug on some Octeon plattforms so I removed the Octeon driver for now
> (but kept the DT bindings for it). We'll submit the Octeon driver later when
> we've fixed the issue.

Please rather post a new version that also works with OCTEON. I don't
think a partial driver should be merged; originally this driver was
working fine with OCTEON so there should be no issue supporting that?!

A.


Re: [PATCH v13 0/6] Cavium MMC driver

2017-04-12 Thread Aaro Koskinen
Hi,

On Thu, Mar 30, 2017 at 05:31:22PM +0200, Jan Glauber wrote:
> Hi Ulf,
> 
> we have a bug on some Octeon plattforms so I removed the Octeon driver for now
> (but kept the DT bindings for it). We'll submit the Octeon driver later when
> we've fixed the issue.

Please rather post a new version that also works with OCTEON. I don't
think a partial driver should be merged; originally this driver was
working fine with OCTEON so there should be no issue supporting that?!

A.


Re: [PATCH v13 0/6] Cavium MMC driver

2017-04-10 Thread Ulf Hansson
On 30 March 2017 at 17:31, Jan Glauber  wrote:
> Hi Ulf,
>
> we have a bug on some Octeon plattforms so I removed the Octeon driver for now
> (but kept the DT bindings for it). We'll submit the Octeon driver later when
> we've fixed the issue.
>
> Changes to v12:
> - dts: use generic "mmc-slot" for slots
> - dts: mention deprecated power gpio
> - Rename driver files
> - Use hardcoded voltage instead of mmc_of_parse_voltage()
> - Phase out gpiod usage from cavium.c
> - Change DT property scan order
> - Clean up bus_width setting
> - Use GPIOLIB depend for ThunderX driver
> - ThunderX: Remove TODO
> - ThunderX: Move platform pointers to host struct
> - Check slot node compatible string
> - Remove gpio includes from ThunderX driver
>
> Changes to v11:
> - Fix build error and kill IS_ENABLED() by using an offset per arch
> - Added Rob's ACK for the DT bindings
> - Removed obsolete voltage-ranges from DT example
> - Replace pci_msix_enable() with pci_alloc_irq_vectors()
> - Remove superior hardware comment
> - Prefixed probe/removal functions with of_
> - Merged OF parsing code into one function, change order of property
>   lookup and simplify code
> - Removed slot->sclock, no need to store it there
> - Substituted now invisible mmc_card_blockaddr()
> - Use new 3.3V CAP for DDR
> - Update Copyright
> - Allow set_ios to set clock to zero
> - Converted bitfields to shift-n-mask logic
> - Improved error codes after receiving error interrupt
> - Added ifndef guards to header
> - Add meaningful interrupt names
> - Remove stale mmc_host_ops prototype
>
> Changes to v10:
> - Renamed files to get a common prefix
> - Select GPIO driver in Kconfig
> - Support a fixed regulator
> - dts: fixed quotes and re-ordered example
> - Use new MMC_CAP_3_3V_DDR instead of 1_8V hack
> - Use blksz instead of now internal mmc_card_blockaddr
> - Added some maintainers
>
> Previous versions:
> v10: https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg1295316.html
> v9:  http://marc.info/?l=linux-mmc=147431759215233=2
>
> Cheers,
> Jan

Thanks, applied for next! Amending patch 3 with the fix you posted on top.

Kind regards
Uffe

>
> ---
>
>
> Jan Glauber (6):
>   dt-bindings: mmc: Add Cavium SOCs MMC bindings
>   mmc: cavium: Add core MMC driver for Cavium SOCs
>   mmc: cavium: Add MMC PCI driver for ThunderX SOCs
>   mmc: cavium: Add scatter-gather DMA support
>   mmc: cavium: Support DDR mode for eMMC devices
>   MAINTAINERS: Add entry for Cavium MMC driver
>
>  .../devicetree/bindings/mmc/cavium-mmc.txt |   57 +
>  MAINTAINERS|8 +
>  drivers/mmc/host/Kconfig   |   10 +
>  drivers/mmc/host/Makefile  |2 +
>  drivers/mmc/host/cavium-thunderx.c |  198 
>  drivers/mmc/host/cavium.c  | 1090 
> 
>  drivers/mmc/host/cavium.h  |  215 
>  7 files changed, 1580 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/mmc/cavium-mmc.txt
>  create mode 100644 drivers/mmc/host/cavium-thunderx.c
>  create mode 100644 drivers/mmc/host/cavium.c
>  create mode 100644 drivers/mmc/host/cavium.h
>
> --
> 2.9.0.rc0.21.g322
>


Re: [PATCH v13 0/6] Cavium MMC driver

2017-04-10 Thread Ulf Hansson
On 30 March 2017 at 17:31, Jan Glauber  wrote:
> Hi Ulf,
>
> we have a bug on some Octeon plattforms so I removed the Octeon driver for now
> (but kept the DT bindings for it). We'll submit the Octeon driver later when
> we've fixed the issue.
>
> Changes to v12:
> - dts: use generic "mmc-slot" for slots
> - dts: mention deprecated power gpio
> - Rename driver files
> - Use hardcoded voltage instead of mmc_of_parse_voltage()
> - Phase out gpiod usage from cavium.c
> - Change DT property scan order
> - Clean up bus_width setting
> - Use GPIOLIB depend for ThunderX driver
> - ThunderX: Remove TODO
> - ThunderX: Move platform pointers to host struct
> - Check slot node compatible string
> - Remove gpio includes from ThunderX driver
>
> Changes to v11:
> - Fix build error and kill IS_ENABLED() by using an offset per arch
> - Added Rob's ACK for the DT bindings
> - Removed obsolete voltage-ranges from DT example
> - Replace pci_msix_enable() with pci_alloc_irq_vectors()
> - Remove superior hardware comment
> - Prefixed probe/removal functions with of_
> - Merged OF parsing code into one function, change order of property
>   lookup and simplify code
> - Removed slot->sclock, no need to store it there
> - Substituted now invisible mmc_card_blockaddr()
> - Use new 3.3V CAP for DDR
> - Update Copyright
> - Allow set_ios to set clock to zero
> - Converted bitfields to shift-n-mask logic
> - Improved error codes after receiving error interrupt
> - Added ifndef guards to header
> - Add meaningful interrupt names
> - Remove stale mmc_host_ops prototype
>
> Changes to v10:
> - Renamed files to get a common prefix
> - Select GPIO driver in Kconfig
> - Support a fixed regulator
> - dts: fixed quotes and re-ordered example
> - Use new MMC_CAP_3_3V_DDR instead of 1_8V hack
> - Use blksz instead of now internal mmc_card_blockaddr
> - Added some maintainers
>
> Previous versions:
> v10: https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg1295316.html
> v9:  http://marc.info/?l=linux-mmc=147431759215233=2
>
> Cheers,
> Jan

Thanks, applied for next! Amending patch 3 with the fix you posted on top.

Kind regards
Uffe

>
> ---
>
>
> Jan Glauber (6):
>   dt-bindings: mmc: Add Cavium SOCs MMC bindings
>   mmc: cavium: Add core MMC driver for Cavium SOCs
>   mmc: cavium: Add MMC PCI driver for ThunderX SOCs
>   mmc: cavium: Add scatter-gather DMA support
>   mmc: cavium: Support DDR mode for eMMC devices
>   MAINTAINERS: Add entry for Cavium MMC driver
>
>  .../devicetree/bindings/mmc/cavium-mmc.txt |   57 +
>  MAINTAINERS|8 +
>  drivers/mmc/host/Kconfig   |   10 +
>  drivers/mmc/host/Makefile  |2 +
>  drivers/mmc/host/cavium-thunderx.c |  198 
>  drivers/mmc/host/cavium.c  | 1090 
> 
>  drivers/mmc/host/cavium.h  |  215 
>  7 files changed, 1580 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/mmc/cavium-mmc.txt
>  create mode 100644 drivers/mmc/host/cavium-thunderx.c
>  create mode 100644 drivers/mmc/host/cavium.c
>  create mode 100644 drivers/mmc/host/cavium.h
>
> --
> 2.9.0.rc0.21.g322
>


[PATCH v13 0/6] Cavium MMC driver

2017-03-30 Thread Jan Glauber
Hi Ulf,

we have a bug on some Octeon plattforms so I removed the Octeon driver for now
(but kept the DT bindings for it). We'll submit the Octeon driver later when
we've fixed the issue.

Changes to v12:
- dts: use generic "mmc-slot" for slots
- dts: mention deprecated power gpio
- Rename driver files
- Use hardcoded voltage instead of mmc_of_parse_voltage()
- Phase out gpiod usage from cavium.c
- Change DT property scan order
- Clean up bus_width setting
- Use GPIOLIB depend for ThunderX driver
- ThunderX: Remove TODO
- ThunderX: Move platform pointers to host struct
- Check slot node compatible string
- Remove gpio includes from ThunderX driver

Changes to v11:
- Fix build error and kill IS_ENABLED() by using an offset per arch
- Added Rob's ACK for the DT bindings
- Removed obsolete voltage-ranges from DT example
- Replace pci_msix_enable() with pci_alloc_irq_vectors()
- Remove superior hardware comment
- Prefixed probe/removal functions with of_
- Merged OF parsing code into one function, change order of property
  lookup and simplify code
- Removed slot->sclock, no need to store it there
- Substituted now invisible mmc_card_blockaddr()
- Use new 3.3V CAP for DDR
- Update Copyright
- Allow set_ios to set clock to zero
- Converted bitfields to shift-n-mask logic
- Improved error codes after receiving error interrupt
- Added ifndef guards to header
- Add meaningful interrupt names
- Remove stale mmc_host_ops prototype

Changes to v10:
- Renamed files to get a common prefix
- Select GPIO driver in Kconfig
- Support a fixed regulator
- dts: fixed quotes and re-ordered example
- Use new MMC_CAP_3_3V_DDR instead of 1_8V hack
- Use blksz instead of now internal mmc_card_blockaddr
- Added some maintainers

Previous versions:
v10: https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg1295316.html
v9:  http://marc.info/?l=linux-mmc=147431759215233=2

Cheers,
Jan

---


Jan Glauber (6):
  dt-bindings: mmc: Add Cavium SOCs MMC bindings
  mmc: cavium: Add core MMC driver for Cavium SOCs
  mmc: cavium: Add MMC PCI driver for ThunderX SOCs
  mmc: cavium: Add scatter-gather DMA support
  mmc: cavium: Support DDR mode for eMMC devices
  MAINTAINERS: Add entry for Cavium MMC driver

 .../devicetree/bindings/mmc/cavium-mmc.txt |   57 +
 MAINTAINERS|8 +
 drivers/mmc/host/Kconfig   |   10 +
 drivers/mmc/host/Makefile  |2 +
 drivers/mmc/host/cavium-thunderx.c |  198 
 drivers/mmc/host/cavium.c  | 1090 
 drivers/mmc/host/cavium.h  |  215 
 7 files changed, 1580 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/mmc/cavium-mmc.txt
 create mode 100644 drivers/mmc/host/cavium-thunderx.c
 create mode 100644 drivers/mmc/host/cavium.c
 create mode 100644 drivers/mmc/host/cavium.h

-- 
2.9.0.rc0.21.g322



[PATCH v13 0/6] Cavium MMC driver

2017-03-30 Thread Jan Glauber
Hi Ulf,

we have a bug on some Octeon plattforms so I removed the Octeon driver for now
(but kept the DT bindings for it). We'll submit the Octeon driver later when
we've fixed the issue.

Changes to v12:
- dts: use generic "mmc-slot" for slots
- dts: mention deprecated power gpio
- Rename driver files
- Use hardcoded voltage instead of mmc_of_parse_voltage()
- Phase out gpiod usage from cavium.c
- Change DT property scan order
- Clean up bus_width setting
- Use GPIOLIB depend for ThunderX driver
- ThunderX: Remove TODO
- ThunderX: Move platform pointers to host struct
- Check slot node compatible string
- Remove gpio includes from ThunderX driver

Changes to v11:
- Fix build error and kill IS_ENABLED() by using an offset per arch
- Added Rob's ACK for the DT bindings
- Removed obsolete voltage-ranges from DT example
- Replace pci_msix_enable() with pci_alloc_irq_vectors()
- Remove superior hardware comment
- Prefixed probe/removal functions with of_
- Merged OF parsing code into one function, change order of property
  lookup and simplify code
- Removed slot->sclock, no need to store it there
- Substituted now invisible mmc_card_blockaddr()
- Use new 3.3V CAP for DDR
- Update Copyright
- Allow set_ios to set clock to zero
- Converted bitfields to shift-n-mask logic
- Improved error codes after receiving error interrupt
- Added ifndef guards to header
- Add meaningful interrupt names
- Remove stale mmc_host_ops prototype

Changes to v10:
- Renamed files to get a common prefix
- Select GPIO driver in Kconfig
- Support a fixed regulator
- dts: fixed quotes and re-ordered example
- Use new MMC_CAP_3_3V_DDR instead of 1_8V hack
- Use blksz instead of now internal mmc_card_blockaddr
- Added some maintainers

Previous versions:
v10: https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg1295316.html
v9:  http://marc.info/?l=linux-mmc=147431759215233=2

Cheers,
Jan

---


Jan Glauber (6):
  dt-bindings: mmc: Add Cavium SOCs MMC bindings
  mmc: cavium: Add core MMC driver for Cavium SOCs
  mmc: cavium: Add MMC PCI driver for ThunderX SOCs
  mmc: cavium: Add scatter-gather DMA support
  mmc: cavium: Support DDR mode for eMMC devices
  MAINTAINERS: Add entry for Cavium MMC driver

 .../devicetree/bindings/mmc/cavium-mmc.txt |   57 +
 MAINTAINERS|8 +
 drivers/mmc/host/Kconfig   |   10 +
 drivers/mmc/host/Makefile  |2 +
 drivers/mmc/host/cavium-thunderx.c |  198 
 drivers/mmc/host/cavium.c  | 1090 
 drivers/mmc/host/cavium.h  |  215 
 7 files changed, 1580 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/mmc/cavium-mmc.txt
 create mode 100644 drivers/mmc/host/cavium-thunderx.c
 create mode 100644 drivers/mmc/host/cavium.c
 create mode 100644 drivers/mmc/host/cavium.h

-- 
2.9.0.rc0.21.g322