Arnd Bergmann <[email protected]> 于2021年1月21日周四 上午2:22写道: > > From: Arnd Bergmann <[email protected]> > > The CSR SiRF prima2/atlas platforms are getting removed, so this driver > is no longer needed. > > Cc: Barry Song <[email protected]> > Link: > https://lore.kernel.org/linux-arm-kernel/[email protected]/T/ > Signed-off-by: Arnd Bergmann <[email protected]>
Acked-by: Barry Song <[email protected]> > --- > .../bindings/hwlock/sirf,hwspinlock.txt | 28 ----- > drivers/hwspinlock/Kconfig | 11 -- > drivers/hwspinlock/Makefile | 1 - > drivers/hwspinlock/sirf_hwspinlock.c | 105 ------------------ > 4 files changed, 145 deletions(-) > delete mode 100644 > Documentation/devicetree/bindings/hwlock/sirf,hwspinlock.txt > delete mode 100644 drivers/hwspinlock/sirf_hwspinlock.c > > diff --git a/Documentation/devicetree/bindings/hwlock/sirf,hwspinlock.txt > b/Documentation/devicetree/bindings/hwlock/sirf,hwspinlock.txt > deleted file mode 100644 > index 9bb1240a68e0..000000000000 > --- a/Documentation/devicetree/bindings/hwlock/sirf,hwspinlock.txt > +++ /dev/null > @@ -1,28 +0,0 @@ > -SIRF Hardware spinlock device Binding > ------------------------------------------------ > - > -Required properties : > -- compatible : shall contain only one of the following: > - "sirf,hwspinlock" > - > -- reg : the register address of hwspinlock > - > -- #hwlock-cells : hwlock users only use the hwlock id to represent a specific > - hwlock, so the number of cells should be <1> here. > - > -Please look at the generic hwlock binding for usage information for > consumers, > -"Documentation/devicetree/bindings/hwlock/hwlock.txt" > - > -Example of hwlock provider: > - hwlock { > - compatible = "sirf,hwspinlock"; > - reg = <0x13240000 0x00010000>; > - #hwlock-cells = <1>; > - }; > - > -Example of hwlock users: > - node { > - ... > - hwlocks = <&hwlock 2>; > - ... > - }; > diff --git a/drivers/hwspinlock/Kconfig b/drivers/hwspinlock/Kconfig > index 32cd26352f38..53e13476e831 100644 > --- a/drivers/hwspinlock/Kconfig > +++ b/drivers/hwspinlock/Kconfig > @@ -28,17 +28,6 @@ config HWSPINLOCK_QCOM > > If unsure, say N. > > -config HWSPINLOCK_SIRF > - tristate "SIRF Hardware Spinlock device" > - depends on ARCH_SIRF || COMPILE_TEST > - help > - Say y here to support the SIRF Hardware Spinlock device, which > - provides a synchronisation mechanism for the various processors > - on the SoC. > - > - It's safe to say n here if you're not interested in SIRF hardware > - spinlock or just want a bare minimum kernel. > - > config HWSPINLOCK_SPRD > tristate "SPRD Hardware Spinlock device" > depends on ARCH_SPRD || COMPILE_TEST > diff --git a/drivers/hwspinlock/Makefile b/drivers/hwspinlock/Makefile > index ed053e3f02be..1f8dd6f5814f 100644 > --- a/drivers/hwspinlock/Makefile > +++ b/drivers/hwspinlock/Makefile > @@ -6,7 +6,6 @@ > obj-$(CONFIG_HWSPINLOCK) += hwspinlock_core.o > obj-$(CONFIG_HWSPINLOCK_OMAP) += omap_hwspinlock.o > obj-$(CONFIG_HWSPINLOCK_QCOM) += qcom_hwspinlock.o > -obj-$(CONFIG_HWSPINLOCK_SIRF) += sirf_hwspinlock.o > obj-$(CONFIG_HWSPINLOCK_SPRD) += sprd_hwspinlock.o > obj-$(CONFIG_HWSPINLOCK_STM32) += stm32_hwspinlock.o > obj-$(CONFIG_HSEM_U8500) += u8500_hsem.o > diff --git a/drivers/hwspinlock/sirf_hwspinlock.c > b/drivers/hwspinlock/sirf_hwspinlock.c > deleted file mode 100644 > index a3f77120bad7..000000000000 > --- a/drivers/hwspinlock/sirf_hwspinlock.c > +++ /dev/null > @@ -1,105 +0,0 @@ > -// SPDX-License-Identifier: GPL-2.0 > -/* > - * SIRF hardware spinlock driver > - * > - * Copyright (c) 2015 Cambridge Silicon Radio Limited, a CSR plc group > company. > - */ > - > -#include <linux/kernel.h> > -#include <linux/module.h> > -#include <linux/device.h> > -#include <linux/io.h> > -#include <linux/slab.h> > -#include <linux/spinlock.h> > -#include <linux/hwspinlock.h> > -#include <linux/platform_device.h> > -#include <linux/of.h> > -#include <linux/of_address.h> > - > -#include "hwspinlock_internal.h" > - > -struct sirf_hwspinlock { > - void __iomem *io_base; > - struct hwspinlock_device bank; > -}; > - > -/* Number of Hardware Spinlocks*/ > -#define HW_SPINLOCK_NUMBER 30 > - > -/* Hardware spinlock register offsets */ > -#define HW_SPINLOCK_BASE 0x404 > -#define HW_SPINLOCK_OFFSET(x) (HW_SPINLOCK_BASE + 0x4 * (x)) > - > -static int sirf_hwspinlock_trylock(struct hwspinlock *lock) > -{ > - void __iomem *lock_addr = lock->priv; > - > - /* attempt to acquire the lock by reading value == 1 from it */ > - return !!readl(lock_addr); > -} > - > -static void sirf_hwspinlock_unlock(struct hwspinlock *lock) > -{ > - void __iomem *lock_addr = lock->priv; > - > - /* release the lock by writing 0 to it */ > - writel(0, lock_addr); > -} > - > -static const struct hwspinlock_ops sirf_hwspinlock_ops = { > - .trylock = sirf_hwspinlock_trylock, > - .unlock = sirf_hwspinlock_unlock, > -}; > - > -static int sirf_hwspinlock_probe(struct platform_device *pdev) > -{ > - struct sirf_hwspinlock *hwspin; > - struct hwspinlock *hwlock; > - int idx; > - > - if (!pdev->dev.of_node) > - return -ENODEV; > - > - hwspin = devm_kzalloc(&pdev->dev, > - struct_size(hwspin, bank.lock, > - HW_SPINLOCK_NUMBER), > - GFP_KERNEL); > - if (!hwspin) > - return -ENOMEM; > - > - /* retrieve io base */ > - hwspin->io_base = devm_platform_ioremap_resource(pdev, 0); > - if (IS_ERR(hwspin->io_base)) > - return PTR_ERR(hwspin->io_base); > - > - for (idx = 0; idx < HW_SPINLOCK_NUMBER; idx++) { > - hwlock = &hwspin->bank.lock[idx]; > - hwlock->priv = hwspin->io_base + HW_SPINLOCK_OFFSET(idx); > - } > - > - platform_set_drvdata(pdev, hwspin); > - > - return devm_hwspin_lock_register(&pdev->dev, &hwspin->bank, > - &sirf_hwspinlock_ops, 0, > - HW_SPINLOCK_NUMBER); > -} > - > -static const struct of_device_id sirf_hwpinlock_ids[] = { > - { .compatible = "sirf,hwspinlock", }, > - {}, > -}; > -MODULE_DEVICE_TABLE(of, sirf_hwpinlock_ids); > - > -static struct platform_driver sirf_hwspinlock_driver = { > - .probe = sirf_hwspinlock_probe, > - .driver = { > - .name = "atlas7_hwspinlock", > - .of_match_table = sirf_hwpinlock_ids, > - }, > -}; > - > -module_platform_driver(sirf_hwspinlock_driver); > - > -MODULE_LICENSE("GPL v2"); > -MODULE_DESCRIPTION("SIRF Hardware spinlock driver"); > -MODULE_AUTHOR("Wei Chen <[email protected]>"); > -- > 2.29.2 >

