* [PATCH 00/61] tree-wide: simplify getting .drvdata @ 2018-04-19 14:05 Wolfram Sang 2018-04-19 14:05 ` [PATCH 07/61] dma: " Wolfram Sang 0 siblings, 1 reply; 4+ messages in thread From: Wolfram Sang @ 2018-04-19 14:05 UTC (permalink / raw) To: linux-kernel Cc: linux-renesas-soc, kernel-janitors, Wolfram Sang, ac100, acpi4asus-user, alsa-devel, devel, dmaengine, dri-devel, freedreno, greybus-dev, iommu, linux-arm-kernel, linux-arm-msm, linux-clk, linux-crypto, linux-fbdev, linux-gpio, linux-ide, linux-iio, linux-input, linux-mediatek, linux-media, linux-mmc, linux-mtd, linux-omap, linux-pm, linuxppc-dev, linux-pwm, linux-rockchip, linux-rtc, linux-samsung-soc, linux-serial, linux-soc, linux-spi, linux-tegra, linux-usb, linux-watchdog, netdev, platform-driver-x86 I got tired of fixing this in Renesas drivers manually, so I took the big hammer. Remove this cumbersome code pattern which got copy-pasted too much already: - struct platform_device *pdev = to_platform_device(dev); - struct ep93xx_keypad *keypad = platform_get_drvdata(pdev); + struct ep93xx_keypad *keypad = dev_get_drvdata(dev); I send this out as one patch per directory per subsystem. I think they should be applied individually. If you prefer a broken out series per subsystem, I can provide this as well. Just mail me. A branch (tested by buildbot; only with all commits squashed into one commit before) can be found here: git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux.git coccinelle/get_drvdata Open for other comments, suggestions, too, of course. Here is the cocci-script I created (after <n> iterations by manually checking samples): @@ struct device* d; identifier pdev; expression *ptr; @@ ( - struct platform_device *pdev = to_platform_device(d); | - struct platform_device *pdev; ... - pdev = to_platform_device(d); ) <... when != pdev - &pdev->dev + d ...> ptr = - platform_get_drvdata(pdev) + dev_get_drvdata(d) <... when != pdev - &pdev->dev + d ...> Kind regards, Wolfram Wolfram Sang (61): ARM: plat-samsung: simplify getting .drvdata ata: simplify getting .drvdata auxdisplay: simplify getting .drvdata bus: simplify getting .drvdata clk: samsung: simplify getting .drvdata crypto: simplify getting .drvdata dma: simplify getting .drvdata dmaengine: dw: simplify getting .drvdata dmaengine: qcom: simplify getting .drvdata gpio: simplify getting .drvdata gpu: drm: msm: simplify getting .drvdata gpu: drm: msm: adreno: simplify getting .drvdata gpu: drm: msm: disp: mdp5: simplify getting .drvdata gpu: drm: msm: dsi: simplify getting .drvdata gpu: drm: omapdrm: displays: simplify getting .drvdata gpu: drm: vc4: simplify getting .drvdata hid: simplify getting .drvdata iio: common: cros_ec_sensors: simplify getting .drvdata iio: common: hid-sensors: simplify getting .drvdata input: keyboard: simplify getting .drvdata input: misc: simplify getting .drvdata input: mouse: simplify getting .drvdata input: touchscreen: simplify getting .drvdata iommu: simplify getting .drvdata media: platform: am437x: simplify getting .drvdata media: platform: exynos4-is: simplify getting .drvdata media: platform: s5p-mfc: simplify getting .drvdata mmc: host: simplify getting .drvdata mtd: devices: simplify getting .drvdata mtd: nand: onenand: simplify getting .drvdata net: dsa: simplify getting .drvdata net: ethernet: cadence: simplify getting .drvdata net: ethernet: davicom: simplify getting .drvdata net: ethernet: smsc: simplify getting .drvdata net: ethernet: ti: simplify getting .drvdata net: ethernet: wiznet: simplify getting .drvdata perf: simplify getting .drvdata pinctrl: simplify getting .drvdata pinctrl: intel: simplify getting .drvdata platform: x86: simplify getting .drvdata power: supply: simplify getting .drvdata ptp: simplify getting .drvdata pwm: simplify getting .drvdata rtc: simplify getting .drvdata slimbus: simplify getting .drvdata spi: simplify getting .drvdata staging: greybus: simplify getting .drvdata staging: iio: adc: simplify getting .drvdata staging: nvec: simplify getting .drvdata thermal: simplify getting .drvdata thermal: int340x_thermal: simplify getting .drvdata thermal: st: simplify getting .drvdata tty: serial: simplify getting .drvdata uio: simplify getting .drvdata usb: mtu3: simplify getting .drvdata usb: phy: simplify getting .drvdata video: fbdev: simplify getting .drvdata video: fbdev: omap2: omapfb: displays: simplify getting .drvdata watchdog: simplify getting .drvdata net: dsa: simplify getting .drvdata ASoC: atmel: simplify getting .drvdata arch/arm/plat-samsung/adc.c | 3 +- drivers/ata/pata_samsung_cf.c | 8 ++--- drivers/auxdisplay/arm-charlcd.c | 6 ++-- drivers/bus/brcmstb_gisb.c | 12 +++---- drivers/clk/samsung/clk-s3c2410-dclk.c | 6 ++-- drivers/crypto/exynos-rng.c | 6 ++-- drivers/crypto/picoxcell_crypto.c | 6 ++-- drivers/dma/at_hdmac.c | 9 ++--- drivers/dma/at_xdmac.c | 9 ++--- drivers/dma/dw/platform.c | 6 ++-- drivers/dma/fsldma.c | 6 ++-- drivers/dma/idma64.c | 6 ++-- drivers/dma/qcom/hidma.c | 3 +- drivers/dma/qcom/hidma_mgmt_sys.c | 6 ++-- drivers/dma/ste_dma40.c | 12 +++---- drivers/dma/txx9dmac.c | 8 ++--- drivers/gpio/gpio-dwapb.c | 6 ++-- drivers/gpio/gpio-lynxpoint.c | 3 +- drivers/gpio/gpio-omap.c | 12 +++---- drivers/gpio/gpio-tegra.c | 6 ++-- drivers/gpio/gpio-zynq.c | 6 ++-- drivers/gpu/drm/msm/adreno/adreno_device.c | 6 ++-- drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c | 6 ++-- drivers/gpu/drm/msm/dsi/dsi_host.c | 6 ++-- drivers/gpu/drm/msm/msm_drv.c | 3 +- drivers/gpu/drm/omapdrm/displays/panel-dsi-cm.c | 18 ++++------ drivers/gpu/drm/vc4/vc4_drv.c | 3 +- drivers/hid/hid-sensor-custom.c | 12 +++---- .../common/cros_ec_sensors/cros_ec_sensors_core.c | 6 ++-- .../iio/common/hid-sensors/hid-sensor-trigger.c | 9 ++--- drivers/input/keyboard/ep93xx_keypad.c | 10 +++--- drivers/input/keyboard/imx_keypad.c | 10 +++--- drivers/input/keyboard/lpc32xx-keys.c | 6 ++-- drivers/input/keyboard/matrix_keypad.c | 10 +++--- drivers/input/keyboard/omap4-keypad.c | 10 +++--- drivers/input/keyboard/pmic8xxx-keypad.c | 6 ++-- drivers/input/keyboard/pxa27x_keypad.c | 10 +++--- drivers/input/keyboard/samsung-keypad.c | 12 +++---- drivers/input/keyboard/snvs_pwrkey.c | 10 +++--- drivers/input/keyboard/spear-keyboard.c | 10 +++--- drivers/input/keyboard/st-keyscan.c | 6 ++-- drivers/input/keyboard/tegra-kbc.c | 10 +++--- drivers/input/misc/max77693-haptic.c | 6 ++-- drivers/input/misc/max8997_haptic.c | 3 +- drivers/input/misc/palmas-pwrbutton.c | 6 ++-- drivers/input/misc/regulator-haptic.c | 6 ++-- drivers/input/misc/twl4030-vibra.c | 3 +- drivers/input/misc/twl6040-vibra.c | 3 +- drivers/input/mouse/navpoint.c | 6 ++-- drivers/input/touchscreen/imx6ul_tsc.c | 6 ++-- drivers/iommu/qcom_iommu.c | 6 ++-- drivers/media/platform/am437x/am437x-vpfe.c | 6 ++-- drivers/media/platform/exynos4-is/media-dev.c | 6 ++-- drivers/media/platform/exynos4-is/mipi-csis.c | 6 ++-- drivers/media/platform/s5p-mfc/s5p_mfc.c | 6 ++-- drivers/mmc/host/davinci_mmc.c | 6 ++-- drivers/mmc/host/sdhci-of-arasan.c | 6 ++-- drivers/mmc/host/wmt-sdmmc.c | 6 ++-- drivers/mtd/devices/docg3.c | 3 +- drivers/mtd/nand/onenand/samsung.c | 6 ++-- drivers/net/dsa/bcm_sf2.c | 6 ++-- drivers/net/dsa/qca8k.c | 6 ++-- drivers/net/ethernet/cadence/macb_main.c | 6 ++-- drivers/net/ethernet/davicom/dm9000.c | 6 ++-- drivers/net/ethernet/smsc/smc91x.c | 3 +- drivers/net/ethernet/ti/cpsw.c | 6 ++-- drivers/net/ethernet/ti/davinci_emac.c | 6 ++-- drivers/net/ethernet/wiznet/w5300.c | 6 ++-- drivers/perf/arm_spe_pmu.c | 6 ++-- drivers/pinctrl/intel/pinctrl-baytrail.c | 6 ++-- drivers/pinctrl/intel/pinctrl-cherryview.c | 6 ++-- drivers/pinctrl/intel/pinctrl-intel.c | 6 ++-- drivers/pinctrl/pinctrl-amd.c | 6 ++-- drivers/pinctrl/pinctrl-at91-pio4.c | 6 ++-- drivers/platform/x86/asus-laptop.c | 3 +- drivers/platform/x86/asus-wmi.c | 3 +- drivers/platform/x86/samsung-laptop.c | 3 +- drivers/power/supply/gpio-charger.c | 3 +- drivers/ptp/ptp_dte.c | 6 ++-- drivers/pwm/pwm-atmel-tcb.c | 6 ++-- drivers/pwm/pwm-rcar.c | 3 +- drivers/rtc/rtc-bq4802.c | 6 ++-- drivers/rtc/rtc-ds1216.c | 6 ++-- drivers/rtc/rtc-ds1511.c | 9 ++--- drivers/rtc/rtc-ds1553.c | 15 +++----- drivers/rtc/rtc-ds1685.c | 21 ++++------- drivers/rtc/rtc-ds1742.c | 6 ++-- drivers/rtc/rtc-lpc32xx.c | 16 ++++----- drivers/rtc/rtc-m48t59.c | 41 +++++++++------------- drivers/rtc/rtc-mv.c | 3 +- drivers/rtc/rtc-mxc.c | 21 ++++------- drivers/rtc/rtc-pcap.c | 15 +++----- drivers/rtc/rtc-sh.c | 15 +++----- drivers/rtc/rtc-stk17ta8.c | 15 +++----- drivers/rtc/rtc-test.c | 3 +- drivers/rtc/rtc-zynqmp.c | 10 +++--- drivers/slimbus/qcom-ctrl.c | 6 ++-- drivers/spi/spi-cadence.c | 6 ++-- drivers/spi/spi-zynqmp-gqspi.c | 6 ++-- drivers/staging/greybus/arche-platform.c | 3 +- drivers/staging/iio/adc/ad7606_par.c | 6 ++-- drivers/staging/nvec/nvec.c | 6 ++-- drivers/thermal/int340x_thermal/int3400_thermal.c | 9 ++--- drivers/thermal/rockchip_thermal.c | 8 ++--- drivers/thermal/spear_thermal.c | 8 ++--- drivers/thermal/st/st_thermal.c | 6 ++-- drivers/thermal/zx2967_thermal.c | 6 ++-- drivers/tty/serial/imx.c | 18 ++++------ drivers/tty/serial/qcom_geni_serial.c | 6 ++-- drivers/tty/serial/st-asc.c | 6 ++-- drivers/tty/serial/xilinx_uartps.c | 6 ++-- drivers/uio/uio_fsl_elbc_gpcm.c | 6 ++-- drivers/usb/mtu3/mtu3_plat.c | 6 ++-- drivers/usb/phy/phy-am335x.c | 6 ++-- drivers/video/fbdev/auo_k190x.c | 12 +++---- .../fbdev/omap2/omapfb/displays/panel-dsi-cm.c | 18 ++++------ drivers/video/fbdev/sh_mobile_lcdcfb.c | 6 ++-- drivers/video/fbdev/sh_mobile_meram.c | 6 ++-- drivers/watchdog/cadence_wdt.c | 6 ++-- drivers/watchdog/of_xilinx_wdt.c | 6 ++-- drivers/watchdog/wdat_wdt.c | 6 ++-- net/dsa/legacy.c | 6 ++-- sound/soc/atmel/atmel_ssc_dai.c | 6 ++-- 123 files changed, 319 insertions(+), 607 deletions(-) -- 2.11.0 ^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 07/61] dma: simplify getting .drvdata 2018-04-19 14:05 [PATCH 00/61] tree-wide: simplify getting .drvdata Wolfram Sang @ 2018-04-19 14:05 ` Wolfram Sang 2018-04-22 6:17 ` Vinod Koul 0 siblings, 1 reply; 4+ messages in thread From: Wolfram Sang @ 2018-04-19 14:05 UTC (permalink / raw) To: linux-kernel Cc: linux-renesas-soc, kernel-janitors, Wolfram Sang, Ludovic Desroches, Vinod Koul, Dan Williams, Li Yang, Zhang Wei, Linus Walleij, linux-arm-kernel, dmaengine, linuxppc-dev We should get drvdata from struct device directly. Going via platform_device is an unneeded step back and forth. Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com> --- Build tested only. buildbot is happy. Please apply individually. drivers/dma/at_hdmac.c | 9 +++------ drivers/dma/at_xdmac.c | 9 +++------ drivers/dma/fsldma.c | 6 ++---- drivers/dma/idma64.c | 6 ++---- drivers/dma/ste_dma40.c | 12 ++++-------- drivers/dma/txx9dmac.c | 8 +++----- 6 files changed, 17 insertions(+), 33 deletions(-) diff --git a/drivers/dma/at_hdmac.c b/drivers/dma/at_hdmac.c index a861b5b4d443..75f38d19fcbe 100644 --- a/drivers/dma/at_hdmac.c +++ b/drivers/dma/at_hdmac.c @@ -2041,8 +2041,7 @@ static void at_dma_shutdown(struct platform_device *pdev) static int at_dma_prepare(struct device *dev) { - struct platform_device *pdev = to_platform_device(dev); - struct at_dma *atdma = platform_get_drvdata(pdev); + struct at_dma *atdma = dev_get_drvdata(dev); struct dma_chan *chan, *_chan; list_for_each_entry_safe(chan, _chan, &atdma->dma_common.channels, @@ -2076,8 +2075,7 @@ static void atc_suspend_cyclic(struct at_dma_chan *atchan) static int at_dma_suspend_noirq(struct device *dev) { - struct platform_device *pdev = to_platform_device(dev); - struct at_dma *atdma = platform_get_drvdata(pdev); + struct at_dma *atdma = dev_get_drvdata(dev); struct dma_chan *chan, *_chan; /* preserve data */ @@ -2118,8 +2116,7 @@ static void atc_resume_cyclic(struct at_dma_chan *atchan) static int at_dma_resume_noirq(struct device *dev) { - struct platform_device *pdev = to_platform_device(dev); - struct at_dma *atdma = platform_get_drvdata(pdev); + struct at_dma *atdma = dev_get_drvdata(dev); struct dma_chan *chan, *_chan; /* bring back DMA controller */ diff --git a/drivers/dma/at_xdmac.c b/drivers/dma/at_xdmac.c index 94236ec9d410..4bf72561667c 100644 --- a/drivers/dma/at_xdmac.c +++ b/drivers/dma/at_xdmac.c @@ -1833,8 +1833,7 @@ static void at_xdmac_free_chan_resources(struct dma_chan *chan) #ifdef CONFIG_PM static int atmel_xdmac_prepare(struct device *dev) { - struct platform_device *pdev = to_platform_device(dev); - struct at_xdmac *atxdmac = platform_get_drvdata(pdev); + struct at_xdmac *atxdmac = dev_get_drvdata(dev); struct dma_chan *chan, *_chan; list_for_each_entry_safe(chan, _chan, &atxdmac->dma.channels, device_node) { @@ -1853,8 +1852,7 @@ static int atmel_xdmac_prepare(struct device *dev) #ifdef CONFIG_PM_SLEEP static int atmel_xdmac_suspend(struct device *dev) { - struct platform_device *pdev = to_platform_device(dev); - struct at_xdmac *atxdmac = platform_get_drvdata(pdev); + struct at_xdmac *atxdmac = dev_get_drvdata(dev); struct dma_chan *chan, *_chan; list_for_each_entry_safe(chan, _chan, &atxdmac->dma.channels, device_node) { @@ -1878,8 +1876,7 @@ static int atmel_xdmac_suspend(struct device *dev) static int atmel_xdmac_resume(struct device *dev) { - struct platform_device *pdev = to_platform_device(dev); - struct at_xdmac *atxdmac = platform_get_drvdata(pdev); + struct at_xdmac *atxdmac = dev_get_drvdata(dev); struct at_xdmac_chan *atchan; struct dma_chan *chan, *_chan; int i; diff --git a/drivers/dma/fsldma.c b/drivers/dma/fsldma.c index 3eaece888e75..1117b5123a6f 100644 --- a/drivers/dma/fsldma.c +++ b/drivers/dma/fsldma.c @@ -1328,8 +1328,7 @@ static int fsldma_of_remove(struct platform_device *op) #ifdef CONFIG_PM static int fsldma_suspend_late(struct device *dev) { - struct platform_device *pdev = to_platform_device(dev); - struct fsldma_device *fdev = platform_get_drvdata(pdev); + struct fsldma_device *fdev = dev_get_drvdata(dev); struct fsldma_chan *chan; int i; @@ -1360,8 +1359,7 @@ static int fsldma_suspend_late(struct device *dev) static int fsldma_resume_early(struct device *dev) { - struct platform_device *pdev = to_platform_device(dev); - struct fsldma_device *fdev = platform_get_drvdata(pdev); + struct fsldma_device *fdev = dev_get_drvdata(dev); struct fsldma_chan *chan; u32 mode; int i; diff --git a/drivers/dma/idma64.c b/drivers/dma/idma64.c index 1953e57505f4..e5c911200bdb 100644 --- a/drivers/dma/idma64.c +++ b/drivers/dma/idma64.c @@ -670,8 +670,7 @@ static int idma64_platform_remove(struct platform_device *pdev) static int idma64_pm_suspend(struct device *dev) { - struct platform_device *pdev = to_platform_device(dev); - struct idma64_chip *chip = platform_get_drvdata(pdev); + struct idma64_chip *chip = dev_get_drvdata(dev); idma64_off(chip->idma64); return 0; @@ -679,8 +678,7 @@ static int idma64_pm_suspend(struct device *dev) static int idma64_pm_resume(struct device *dev) { - struct platform_device *pdev = to_platform_device(dev); - struct idma64_chip *chip = platform_get_drvdata(pdev); + struct idma64_chip *chip = dev_get_drvdata(dev); idma64_on(chip->idma64); return 0; diff --git a/drivers/dma/ste_dma40.c b/drivers/dma/ste_dma40.c index c2b089af0420..1bc149af990e 100644 --- a/drivers/dma/ste_dma40.c +++ b/drivers/dma/ste_dma40.c @@ -2889,8 +2889,7 @@ static int __init d40_dmaengine_init(struct d40_base *base, #ifdef CONFIG_PM_SLEEP static int dma40_suspend(struct device *dev) { - struct platform_device *pdev = to_platform_device(dev); - struct d40_base *base = platform_get_drvdata(pdev); + struct d40_base *base = dev_get_drvdata(dev); int ret; ret = pm_runtime_force_suspend(dev); @@ -2904,8 +2903,7 @@ static int dma40_suspend(struct device *dev) static int dma40_resume(struct device *dev) { - struct platform_device *pdev = to_platform_device(dev); - struct d40_base *base = platform_get_drvdata(pdev); + struct d40_base *base = dev_get_drvdata(dev); int ret = 0; if (base->lcpa_regulator) { @@ -2970,8 +2968,7 @@ static void d40_save_restore_registers(struct d40_base *base, bool save) static int dma40_runtime_suspend(struct device *dev) { - struct platform_device *pdev = to_platform_device(dev); - struct d40_base *base = platform_get_drvdata(pdev); + struct d40_base *base = dev_get_drvdata(dev); d40_save_restore_registers(base, true); @@ -2985,8 +2982,7 @@ static int dma40_runtime_suspend(struct device *dev) static int dma40_runtime_resume(struct device *dev) { - struct platform_device *pdev = to_platform_device(dev); - struct d40_base *base = platform_get_drvdata(pdev); + struct d40_base *base = dev_get_drvdata(dev); d40_save_restore_registers(base, false); diff --git a/drivers/dma/txx9dmac.c b/drivers/dma/txx9dmac.c index 4d8c7b9078fd..eb45af71d3a3 100644 --- a/drivers/dma/txx9dmac.c +++ b/drivers/dma/txx9dmac.c @@ -1244,8 +1244,7 @@ static void txx9dmac_shutdown(struct platform_device *pdev) static int txx9dmac_suspend_noirq(struct device *dev) { - struct platform_device *pdev = to_platform_device(dev); - struct txx9dmac_dev *ddev = platform_get_drvdata(pdev); + struct txx9dmac_dev *ddev = dev_get_drvdata(dev); txx9dmac_off(ddev); return 0; @@ -1253,9 +1252,8 @@ static int txx9dmac_suspend_noirq(struct device *dev) static int txx9dmac_resume_noirq(struct device *dev) { - struct platform_device *pdev = to_platform_device(dev); - struct txx9dmac_dev *ddev = platform_get_drvdata(pdev); - struct txx9dmac_platform_data *pdata = dev_get_platdata(&pdev->dev); + struct txx9dmac_dev *ddev = dev_get_drvdata(dev); + struct txx9dmac_platform_data *pdata = dev_get_platdata(dev); u32 mcr; mcr = TXX9_DMA_MCR_MSTEN | MCR_LE; -- 2.11.0 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 07/61] dma: simplify getting .drvdata 2018-04-19 14:05 ` [PATCH 07/61] dma: " Wolfram Sang @ 2018-04-22 6:17 ` Vinod Koul 2018-04-22 9:14 ` Wolfram Sang 0 siblings, 1 reply; 4+ messages in thread From: Vinod Koul @ 2018-04-22 6:17 UTC (permalink / raw) To: Wolfram Sang Cc: linux-kernel, linux-renesas-soc, kernel-janitors, Ludovic Desroches, Dan Williams, Li Yang, Zhang Wei, Linus Walleij, linux-arm-kernel, dmaengine, linuxppc-dev On Thu, Apr 19, 2018 at 04:05:37PM +0200, Wolfram Sang wrote: > We should get drvdata from struct device directly. Going via > platform_device is an unneeded step back and forth. Do you mind splitting this per driver please, that makes it easy to manage for me :) -- ~Vinod ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 07/61] dma: simplify getting .drvdata 2018-04-22 6:17 ` Vinod Koul @ 2018-04-22 9:14 ` Wolfram Sang 0 siblings, 0 replies; 4+ messages in thread From: Wolfram Sang @ 2018-04-22 9:14 UTC (permalink / raw) To: Vinod Koul Cc: Wolfram Sang, linux-kernel, linux-renesas-soc, kernel-janitors, Ludovic Desroches, Dan Williams, Li Yang, Zhang Wei, Linus Walleij, linux-arm-kernel, dmaengine, linuxppc-dev [-- Attachment #1: Type: text/plain, Size: 367 bytes --] On Sun, Apr 22, 2018 at 11:47:33AM +0530, Vinod Koul wrote: > On Thu, Apr 19, 2018 at 04:05:37PM +0200, Wolfram Sang wrote: > > We should get drvdata from struct device directly. Going via > > platform_device is an unneeded step back and forth. > > Do you mind splitting this per driver please, that makes it easy to manage > for me :) No problem, done. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2018-04-22 9:20 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2018-04-19 14:05 [PATCH 00/61] tree-wide: simplify getting .drvdata Wolfram Sang 2018-04-19 14:05 ` [PATCH 07/61] dma: " Wolfram Sang 2018-04-22 6:17 ` Vinod Koul 2018-04-22 9:14 ` Wolfram Sang
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).