[alsa-devel] [PATCH 00/21] more arm build fixes
Hi subsystem maintainers,
Here is another set of patches that resulted from build testing on linux-next. Please apply directly into your trees if you agree, or let me know if I made a mistake.
I can take whatever remains through the arm-soc tree if you prefer that or I don't hear back.
Arnd
Arnd Bergmann (21): ARM: topology: export cpu_topology ARM: default machine descriptor for multiplatform ARM: shmobile: don't call irqchip_init unconditionally ARM: orion5x: include linux/cpu.h atm: he: use mdelay instead of large udelay constants ALSA: ali5451: use mdelay instead of large udelay constants oss/dmabuf: use dma_map_single drm/nouveau: use mdelay instead of large udelay constants drm: export drm_vm_open_locked [SCSI] nsp32: use mdelay instead of large udelay constants irqdomain: export irq_domain_add_simple irqchip: s3c24xx: add missing __init annotations iommu: tegra: print dma_addr_t using %lld cpufreq: pxa2xx: initialize variables thermal: cooling: avoid uninitialied used gcc warning OF: remove #ifdef from linux/of_platform.h X.509: do not emit any informational output USB: ehci-msm: USB_MSM_OTG needs USB_PHY USB: lpc32xx: ISP1301 needs USB_PHY USB: OMAP: ISP1301 needs USB_PHY USB: OHCI: avoid conflicting platform drivers
arch/arm/Kconfig | 1 - arch/arm/configs/lpc32xx_defconfig | 1 + arch/arm/configs/msm_defconfig | 1 + arch/arm/configs/omap1_defconfig | 1 + arch/arm/kernel/devtree.c | 7 ++ arch/arm/kernel/setup.c | 11 +- arch/arm/kernel/topology.c | 1 + arch/arm/mach-orion5x/common.c | 1 + arch/arm/mach-shmobile/intc-r8a7740.c | 13 +- drivers/atm/he.c | 2 +- drivers/cpufreq/pxa2xx-cpufreq.c | 5 +- drivers/gpu/drm/drm_vm.c | 1 + drivers/gpu/drm/nouveau/core/engine/disp/dacnv50.c | 3 +- drivers/iommu/tegra-gart.c | 3 +- drivers/iommu/tegra-smmu.c | 2 +- drivers/irqchip/irq-s3c24xx.c | 4 +- drivers/scsi/nsp32.c | 2 +- drivers/thermal/cpu_cooling.c | 17 +-- drivers/usb/gadget/Kconfig | 2 + drivers/usb/host/Kconfig | 1 + drivers/usb/host/ohci-hcd.c | 136 ++++++++++++++++++--- drivers/usb/phy/Makefile | 2 +- include/linux/of_platform.h | 13 +- kernel/irq/irqdomain.c | 1 + lib/build_OID_registry | 2 - sound/oss/dmabuf.c | 3 +- sound/pci/ali5451/ali5451.c | 8 +- 27 files changed, 187 insertions(+), 57 deletions(-)
ARM cannot handle udelay for more than 2 miliseconds, so we should use mdelay instead for those.
Signed-off-by: Arnd Bergmann arnd@arndb.de Cc: Takashi Iwai tiwai@suse.de Cc: alsa-devel@alsa-project.org --- sound/pci/ali5451/ali5451.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/sound/pci/ali5451/ali5451.c b/sound/pci/ali5451/ali5451.c index e760af9..53754f5 100644 --- a/sound/pci/ali5451/ali5451.c +++ b/sound/pci/ali5451/ali5451.c @@ -451,10 +451,10 @@ static int snd_ali_reset_5451(struct snd_ali *codec) if (pci_dev) { pci_read_config_dword(pci_dev, 0x7c, &dwVal); pci_write_config_dword(pci_dev, 0x7c, dwVal | 0x08000000); - udelay(5000); + mdelay(5); pci_read_config_dword(pci_dev, 0x7c, &dwVal); pci_write_config_dword(pci_dev, 0x7c, dwVal & 0xf7ffffff); - udelay(5000); + mdelay(5); } pci_dev = codec->pci; @@ -463,14 +463,14 @@ static int snd_ali_reset_5451(struct snd_ali *codec) udelay(500); pci_read_config_dword(pci_dev, 0x44, &dwVal); pci_write_config_dword(pci_dev, 0x44, dwVal & 0xfffbffff); - udelay(5000); + mdelay(5); wCount = 200; while(wCount--) { wReg = snd_ali_codec_peek(codec, 0, AC97_POWERDOWN); if ((wReg & 0x000f) == 0x000f) return 0; - udelay(5000); + mdelay(5); }
/* non-fatal if you have a non PM capable codec */
At Thu, 25 Apr 2013 19:28:49 +0200, Arnd Bergmann wrote:
ARM cannot handle udelay for more than 2 miliseconds, so we should use mdelay instead for those.
Signed-off-by: Arnd Bergmann arnd@arndb.de Cc: Takashi Iwai tiwai@suse.de Cc: alsa-devel@alsa-project.org
Thanks, applied to sound git tree.
Takashi
sound/pci/ali5451/ali5451.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/sound/pci/ali5451/ali5451.c b/sound/pci/ali5451/ali5451.c index e760af9..53754f5 100644 --- a/sound/pci/ali5451/ali5451.c +++ b/sound/pci/ali5451/ali5451.c @@ -451,10 +451,10 @@ static int snd_ali_reset_5451(struct snd_ali *codec) if (pci_dev) { pci_read_config_dword(pci_dev, 0x7c, &dwVal); pci_write_config_dword(pci_dev, 0x7c, dwVal | 0x08000000);
udelay(5000);
pci_read_config_dword(pci_dev, 0x7c, &dwVal); pci_write_config_dword(pci_dev, 0x7c, dwVal & 0xf7ffffff);mdelay(5);
udelay(5000);
mdelay(5);
}
pci_dev = codec->pci;
@@ -463,14 +463,14 @@ static int snd_ali_reset_5451(struct snd_ali *codec) udelay(500); pci_read_config_dword(pci_dev, 0x44, &dwVal); pci_write_config_dword(pci_dev, 0x44, dwVal & 0xfffbffff);
- udelay(5000);
mdelay(5);
wCount = 200; while(wCount--) { wReg = snd_ali_codec_peek(codec, 0, AC97_POWERDOWN); if ((wReg & 0x000f) == 0x000f) return 0;
udelay(5000);
mdelay(5);
}
/* non-fatal if you have a non PM capable codec */
-- 1.8.1.2
The virt_to_bus/bus_to_virt functions have been deprecated for as long as I can remember, and they are used in very few remaining instances, usually in obscure ISA device drivers. The OSS sound drivers are the only ones that are still used on the ARM architecture, and only on some of the earliest StrongARM machines.
The problem for converting the OSS subsystem to use dma_map_single instead is that the caller of virt_to_bus does not have a device pointer, since the subsystem has never been ported to use the common device infrastructure.
Signed-off-by: Arnd Bergmann arnd@arndb.de Cc: Jaroslav Kysela perex@perex.cz Cc: Takashi Iwai tiwai@suse.de Cc: alsa-devel@alsa-project.org --- sound/oss/dmabuf.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/sound/oss/dmabuf.c b/sound/oss/dmabuf.c index bcc3e8e..a59c888 100644 --- a/sound/oss/dmabuf.c +++ b/sound/oss/dmabuf.c @@ -114,7 +114,7 @@ static int sound_alloc_dmap(struct dma_buffparms *dmap) } } dmap->raw_buf = start_addr; - dmap->raw_buf_phys = virt_to_bus(start_addr); + dmap->raw_buf_phys = dma_map_single(NULL, start_addr, dmap->buffsize, DMA_BIDIRECTIONAL);
for (page = virt_to_page(start_addr); page <= virt_to_page(end_addr); page++) SetPageReserved(page); @@ -139,6 +139,7 @@ static void sound_free_dmap(struct dma_buffparms *dmap) for (page = virt_to_page(start_addr); page <= virt_to_page(end_addr); page++) ClearPageReserved(page);
+ dma_unmap_single(NULL, dmap->raw_buf_phys, dmap->buffsize, DMA_BIDIRECTIONAL); free_pages((unsigned long) dmap->raw_buf, sz); dmap->raw_buf = NULL; }
At Thu, 25 Apr 2013 19:28:50 +0200, Arnd Bergmann wrote:
The virt_to_bus/bus_to_virt functions have been deprecated for as long as I can remember, and they are used in very few remaining instances, usually in obscure ISA device drivers. The OSS sound drivers are the only ones that are still used on the ARM architecture, and only on some of the earliest StrongARM machines.
The problem for converting the OSS subsystem to use dma_map_single instead is that the caller of virt_to_bus does not have a device pointer, since the subsystem has never been ported to use the common device infrastructure.
Signed-off-by: Arnd Bergmann arnd@arndb.de Cc: Jaroslav Kysela perex@perex.cz Cc: Takashi Iwai tiwai@suse.de Cc: alsa-devel@alsa-project.org
Applied now, but the only problem is that it's difficult to test it :) Let's see.
Thanks!
Takashi
sound/oss/dmabuf.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/sound/oss/dmabuf.c b/sound/oss/dmabuf.c index bcc3e8e..a59c888 100644 --- a/sound/oss/dmabuf.c +++ b/sound/oss/dmabuf.c @@ -114,7 +114,7 @@ static int sound_alloc_dmap(struct dma_buffparms *dmap) } } dmap->raw_buf = start_addr;
- dmap->raw_buf_phys = virt_to_bus(start_addr);
dmap->raw_buf_phys = dma_map_single(NULL, start_addr, dmap->buffsize, DMA_BIDIRECTIONAL);
for (page = virt_to_page(start_addr); page <= virt_to_page(end_addr); page++) SetPageReserved(page);
@@ -139,6 +139,7 @@ static void sound_free_dmap(struct dma_buffparms *dmap) for (page = virt_to_page(start_addr); page <= virt_to_page(end_addr); page++) ClearPageReserved(page);
- dma_unmap_single(NULL, dmap->raw_buf_phys, dmap->buffsize, DMA_BIDIRECTIONAL); free_pages((unsigned long) dmap->raw_buf, sz); dmap->raw_buf = NULL;
}
1.8.1.2
participants (2)
-
Arnd Bergmann
-
Takashi Iwai