Re: [PATCH] samples: move blackfin gptimers-example from Documentation

From: Shuah Khan
Date: Fri Sep 23 2016 - 23:44:14 EST


On 09/23/2016 05:45 PM, Shuah Khan wrote:
> Move blackfin gptimers-example to samples and remove the Documentation
> Makefile. Update samples Kconfig and Makefile to build gptimers-example.
>
> Signed-off-by: Shuah Khan <shuahkh@xxxxxxxxxxxxxxx>

This patch isn't complete. CONFIG_BUILD_DOCSRC=1 make fails without
updating the Makefile and lib/Kconfig.debug

I am going to send v2 that is complete.

thanks,
-- Shuah

> ---
> Documentation/Makefile | 1 -
> Documentation/blackfin/00-INDEX | 4 --
> Documentation/blackfin/Makefile | 5 --
> Documentation/blackfin/gptimers-example.c | 91 -------------------------------
> samples/Kconfig | 6 ++
> samples/Makefile | 2 +-
> samples/blackfin/Makefile | 1 +
> samples/blackfin/gptimers-example.c | 91 +++++++++++++++++++++++++++++++
> 8 files changed, 99 insertions(+), 102 deletions(-)
> delete mode 100644 Documentation/Makefile
> delete mode 100644 Documentation/blackfin/Makefile
> delete mode 100644 Documentation/blackfin/gptimers-example.c
> create mode 100644 samples/blackfin/Makefile
> create mode 100644 samples/blackfin/gptimers-example.c
>
> diff --git a/Documentation/Makefile b/Documentation/Makefile
> deleted file mode 100644
> index 8435965..0000000
> --- a/Documentation/Makefile
> +++ /dev/null
> @@ -1 +0,0 @@
> -subdir-y := blackfin
> diff --git a/Documentation/blackfin/00-INDEX b/Documentation/blackfin/00-INDEX
> index c54fcdd..265a1ef 100644
> --- a/Documentation/blackfin/00-INDEX
> +++ b/Documentation/blackfin/00-INDEX
> @@ -1,10 +1,6 @@
> 00-INDEX
> - This file
> -Makefile
> - - Makefile for gptimers example file.
> bfin-gpio-notes.txt
> - Notes in developing/using bfin-gpio driver.
> bfin-spi-notes.txt
> - Notes for using bfin spi bus driver.
> -gptimers-example.c
> - - gptimers example
> diff --git a/Documentation/blackfin/Makefile b/Documentation/blackfin/Makefile
> deleted file mode 100644
> index 6782c58..0000000
> --- a/Documentation/blackfin/Makefile
> +++ /dev/null
> @@ -1,5 +0,0 @@
> -ifneq ($(CONFIG_BLACKFIN),)
> -ifneq ($(CONFIG_BFIN_GPTIMERS),)
> -obj-m := gptimers-example.o
> -endif
> -endif
> diff --git a/Documentation/blackfin/gptimers-example.c b/Documentation/blackfin/gptimers-example.c
> deleted file mode 100644
> index 283eba9..0000000
> --- a/Documentation/blackfin/gptimers-example.c
> +++ /dev/null
> @@ -1,91 +0,0 @@
> -/*
> - * Simple gptimers example
> - * http://docs.blackfin.uclinux.org/doku.php?id=linux-kernel:drivers:gptimers
> - *
> - * Copyright 2007-2009 Analog Devices Inc.
> - *
> - * Licensed under the GPL-2 or later.
> - */
> -
> -#include <linux/interrupt.h>
> -#include <linux/module.h>
> -
> -#include <asm/gptimers.h>
> -#include <asm/portmux.h>
> -
> -/* ... random driver includes ... */
> -
> -#define DRIVER_NAME "gptimer_example"
> -
> -#ifdef IRQ_TIMER5
> -#define SAMPLE_IRQ_TIMER IRQ_TIMER5
> -#else
> -#define SAMPLE_IRQ_TIMER IRQ_TIMER2
> -#endif
> -
> -struct gptimer_data {
> - uint32_t period, width;
> -};
> -static struct gptimer_data data;
> -
> -/* ... random driver state ... */
> -
> -static irqreturn_t gptimer_example_irq(int irq, void *dev_id)
> -{
> - struct gptimer_data *data = dev_id;
> -
> - /* make sure it was our timer which caused the interrupt */
> - if (!get_gptimer_intr(TIMER5_id))
> - return IRQ_NONE;
> -
> - /* read the width/period values that were captured for the waveform */
> - data->width = get_gptimer_pwidth(TIMER5_id);
> - data->period = get_gptimer_period(TIMER5_id);
> -
> - /* acknowledge the interrupt */
> - clear_gptimer_intr(TIMER5_id);
> -
> - /* tell the upper layers we took care of things */
> - return IRQ_HANDLED;
> -}
> -
> -/* ... random driver code ... */
> -
> -static int __init gptimer_example_init(void)
> -{
> - int ret;
> -
> - /* grab the peripheral pins */
> - ret = peripheral_request(P_TMR5, DRIVER_NAME);
> - if (ret) {
> - printk(KERN_NOTICE DRIVER_NAME ": peripheral request failed\n");
> - return ret;
> - }
> -
> - /* grab the IRQ for the timer */
> - ret = request_irq(SAMPLE_IRQ_TIMER, gptimer_example_irq,
> - IRQF_SHARED, DRIVER_NAME, &data);
> - if (ret) {
> - printk(KERN_NOTICE DRIVER_NAME ": IRQ request failed\n");
> - peripheral_free(P_TMR5);
> - return ret;
> - }
> -
> - /* setup the timer and enable it */
> - set_gptimer_config(TIMER5_id,
> - WDTH_CAP | PULSE_HI | PERIOD_CNT | IRQ_ENA);
> - enable_gptimers(TIMER5bit);
> -
> - return 0;
> -}
> -module_init(gptimer_example_init);
> -
> -static void __exit gptimer_example_exit(void)
> -{
> - disable_gptimers(TIMER5bit);
> - free_irq(SAMPLE_IRQ_TIMER, &data);
> - peripheral_free(P_TMR5);
> -}
> -module_exit(gptimer_example_exit);
> -
> -MODULE_LICENSE("BSD");
> diff --git a/samples/Kconfig b/samples/Kconfig
> index 85c405f..d67b4b7 100644
> --- a/samples/Kconfig
> +++ b/samples/Kconfig
> @@ -99,4 +99,10 @@ config SAMPLE_SECCOMP
> Build samples of seccomp filters using various methods of
> BPF filter construction.
>
> +config SAMPLE_BLACKFIN_GPTIMERS
> + tristate "Build blackfin gptimers sample code -- loadable modules only"
> + depends on CONFIG_BLACKFIN && CONFIG_BFIN_GPTIMERS && m
> + help
> + Build samples of blackfin gptimers sample module.
> +
> endif # SAMPLES
> diff --git a/samples/Makefile b/samples/Makefile
> index 1a20169..e17d66d 100644
> --- a/samples/Makefile
> +++ b/samples/Makefile
> @@ -2,4 +2,4 @@
>
> obj-$(CONFIG_SAMPLES) += kobject/ kprobes/ trace_events/ livepatch/ \
> hw_breakpoint/ kfifo/ kdb/ hidraw/ rpmsg/ seccomp/ \
> - configfs/ connector/ v4l/ trace_printk/
> + configfs/ connector/ v4l/ trace_printk/ blackfin/
> diff --git a/samples/blackfin/Makefile b/samples/blackfin/Makefile
> new file mode 100644
> index 0000000..89b86cf
> --- /dev/null
> +++ b/samples/blackfin/Makefile
> @@ -0,0 +1 @@
> +obj-$(CONFIG_SAMPLE_BLACKFIN_GPTIMERS) += gptimers-example.o
> diff --git a/samples/blackfin/gptimers-example.c b/samples/blackfin/gptimers-example.c
> new file mode 100644
> index 0000000..283eba9
> --- /dev/null
> +++ b/samples/blackfin/gptimers-example.c
> @@ -0,0 +1,91 @@
> +/*
> + * Simple gptimers example
> + * http://docs.blackfin.uclinux.org/doku.php?id=linux-kernel:drivers:gptimers
> + *
> + * Copyright 2007-2009 Analog Devices Inc.
> + *
> + * Licensed under the GPL-2 or later.
> + */
> +
> +#include <linux/interrupt.h>
> +#include <linux/module.h>
> +
> +#include <asm/gptimers.h>
> +#include <asm/portmux.h>
> +
> +/* ... random driver includes ... */
> +
> +#define DRIVER_NAME "gptimer_example"
> +
> +#ifdef IRQ_TIMER5
> +#define SAMPLE_IRQ_TIMER IRQ_TIMER5
> +#else
> +#define SAMPLE_IRQ_TIMER IRQ_TIMER2
> +#endif
> +
> +struct gptimer_data {
> + uint32_t period, width;
> +};
> +static struct gptimer_data data;
> +
> +/* ... random driver state ... */
> +
> +static irqreturn_t gptimer_example_irq(int irq, void *dev_id)
> +{
> + struct gptimer_data *data = dev_id;
> +
> + /* make sure it was our timer which caused the interrupt */
> + if (!get_gptimer_intr(TIMER5_id))
> + return IRQ_NONE;
> +
> + /* read the width/period values that were captured for the waveform */
> + data->width = get_gptimer_pwidth(TIMER5_id);
> + data->period = get_gptimer_period(TIMER5_id);
> +
> + /* acknowledge the interrupt */
> + clear_gptimer_intr(TIMER5_id);
> +
> + /* tell the upper layers we took care of things */
> + return IRQ_HANDLED;
> +}
> +
> +/* ... random driver code ... */
> +
> +static int __init gptimer_example_init(void)
> +{
> + int ret;
> +
> + /* grab the peripheral pins */
> + ret = peripheral_request(P_TMR5, DRIVER_NAME);
> + if (ret) {
> + printk(KERN_NOTICE DRIVER_NAME ": peripheral request failed\n");
> + return ret;
> + }
> +
> + /* grab the IRQ for the timer */
> + ret = request_irq(SAMPLE_IRQ_TIMER, gptimer_example_irq,
> + IRQF_SHARED, DRIVER_NAME, &data);
> + if (ret) {
> + printk(KERN_NOTICE DRIVER_NAME ": IRQ request failed\n");
> + peripheral_free(P_TMR5);
> + return ret;
> + }
> +
> + /* setup the timer and enable it */
> + set_gptimer_config(TIMER5_id,
> + WDTH_CAP | PULSE_HI | PERIOD_CNT | IRQ_ENA);
> + enable_gptimers(TIMER5bit);
> +
> + return 0;
> +}
> +module_init(gptimer_example_init);
> +
> +static void __exit gptimer_example_exit(void)
> +{
> + disable_gptimers(TIMER5bit);
> + free_irq(SAMPLE_IRQ_TIMER, &data);
> + peripheral_free(P_TMR5);
> +}
> +module_exit(gptimer_example_exit);
> +
> +MODULE_LICENSE("BSD");
>