* [PATCH v2 1/2] ne: Add h8300 support. @ 2015-10-02 6:04 Yoshinori Sato 2015-10-02 6:04 ` [PATCH v2 2/2] ne: DeviceTree support Yoshinori Sato 2015-10-08 8:28 ` [PATCH v3 1/2] ne: Add h8300 support Yoshinori Sato 0 siblings, 2 replies; 6+ messages in thread From: Yoshinori Sato @ 2015-10-02 6:04 UTC (permalink / raw) To: netdev; +Cc: Yoshinori Sato Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp> --- drivers/net/ethernet/8390/Kconfig | 2 +- drivers/net/ethernet/8390/ne.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/8390/Kconfig b/drivers/net/ethernet/8390/Kconfig index edf7225..44d7167 100644 --- a/drivers/net/ethernet/8390/Kconfig +++ b/drivers/net/ethernet/8390/Kconfig @@ -88,7 +88,7 @@ config MCF8390 config NE2000 tristate "NE2000/NE1000 support" depends on (ISA || (Q40 && m) || M32R || MACH_TX49XX || \ - ATARI_ETHERNEC) + ATARI_ETHERNEC || H8300) select CRC32 ---help--- If you have a network (Ethernet) card of this type, say Y here. diff --git a/drivers/net/ethernet/8390/ne.c b/drivers/net/ethernet/8390/ne.c index c063b41..90bf71b 100644 --- a/drivers/net/ethernet/8390/ne.c +++ b/drivers/net/ethernet/8390/ne.c @@ -422,7 +422,8 @@ static int __init ne_probe1(struct net_device *dev, unsigned long ioaddr) stop_page = NE1SM_STOP_PG; } -#if defined(CONFIG_PLAT_MAPPI) || defined(CONFIG_PLAT_OAKS32R) +#if defined(CONFIG_PLAT_MAPPI) || defined(CONFIG_PLAT_OAKS32R) || \ + defined(CONFIG_H8300) neX000 = ((SA_prom[14] == 0x57 && SA_prom[15] == 0x57) || (SA_prom[14] == 0x42 && SA_prom[15] == 0x42)); #else -- 2.1.4 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v2 2/2] ne: DeviceTree support. 2015-10-02 6:04 [PATCH v2 1/2] ne: Add h8300 support Yoshinori Sato @ 2015-10-02 6:04 ` Yoshinori Sato 2015-10-05 13:38 ` David Miller 2015-10-08 8:28 ` [PATCH v3 1/2] ne: Add h8300 support Yoshinori Sato 1 sibling, 1 reply; 6+ messages in thread From: Yoshinori Sato @ 2015-10-02 6:04 UTC (permalink / raw) To: netdev; +Cc: Yoshinori Sato Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp> --- Documentation/devicetree/bindings/net/ne2000.txt | 17 +++++++++++++++++ drivers/net/ethernet/8390/ne.c | 20 +++++++++++++++++++- 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 Documentation/devicetree/bindings/net/ne2000.txt diff --git a/Documentation/devicetree/bindings/net/ne2000.txt b/Documentation/devicetree/bindings/net/ne2000.txt new file mode 100644 index 0000000..8b0dfbf --- /dev/null +++ b/Documentation/devicetree/bindings/net/ne2000.txt @@ -0,0 +1,17 @@ +NE2000 compatible network controller + +Required properties: +- compatible: "national,ne2000" +- reg: base address and length of NE2000. +- interrupts: interrupt specifier for the sole interrupt. +- national,dcr: DCR setting value. + +Example + + ne2000: ethernet@200000 { + compatible = "national,ne2000"; + reg = <0x200000 32>; + interrupts = <17 0>; + national,dcr = <0x48>; + }; + diff --git a/drivers/net/ethernet/8390/ne.c b/drivers/net/ethernet/8390/ne.c index 90bf71b..38d78ab 100644 --- a/drivers/net/ethernet/8390/ne.c +++ b/drivers/net/ethernet/8390/ne.c @@ -52,6 +52,7 @@ static const char version2[] = #include <linux/etherdevice.h> #include <linux/jiffies.h> #include <linux/platform_device.h> +#include <linux/of.h> #include <asm/io.h> @@ -72,6 +73,7 @@ static int io[MAX_NE_CARDS]; static int irq[MAX_NE_CARDS]; static int bad[MAX_NE_CARDS]; static u32 ne_msg_enable; +static unsigned int of_dcr_val; #ifdef MODULE module_param_array(io, int, NULL, 0); @@ -171,6 +173,8 @@ bad_clone_list[] __initdata = { # define DCR_VAL 0x48 /* 8-bit mode */ #elif defined(CONFIG_ATARI) /* 8-bit mode on Atari, normal on Q40 */ # define DCR_VAL (MACH_IS_ATARI ? 0x48 : 0x49) +#elif defined(CONFIG_OF_NET) +# define DCR_VAL of_dcr_val #else # define DCR_VAL 0x49 #endif @@ -304,7 +308,8 @@ static int __init ne_probe1(struct net_device *dev, unsigned long ioaddr) struct ei_device *ei_local = netdev_priv(dev); if (!request_region(ioaddr, NE_IO_EXTENT, DRV_NAME)) - return -EBUSY; + if (!request_mem_region(ioaddr, NE_IO_EXTENT, DRV_NAME)) + return -EBUSY; reg0 = inb_p(ioaddr); if (reg0 == 0xFF) { @@ -809,11 +814,18 @@ static int __init ne_drv_probe(struct platform_device *pdev) if (!dev) return -ENOMEM; + if (dev->dev.of_node) + of_property_read_u32(dev->dev.of_node, + "national,dcr", &of_dcr_val); + /* ne.c doesn't populate resources in platform_device, but * rbtx4927_ne_init and rbtx4938_ne_init do register devices * with resources. */ res = platform_get_resource(pdev, IORESOURCE_IO, 0); + if (!res) + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + if (res) { dev->base_addr = res->start; dev->irq = platform_get_irq(pdev, 0); @@ -915,12 +927,18 @@ static int ne_drv_resume(struct platform_device *pdev) #define ne_drv_resume NULL #endif +static const struct of_device_id ne2000_of_table[] __maybe_unused = { + { .compatible = "national,ne2000" }, + { } +}; + static struct platform_driver ne_driver = { .remove = ne_drv_remove, .suspend = ne_drv_suspend, .resume = ne_drv_resume, .driver = { .name = DRV_NAME, + .of_match_table = of_match_ptr(ne2000_of_table), }, }; -- 2.1.4 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v2 2/2] ne: DeviceTree support. 2015-10-02 6:04 ` [PATCH v2 2/2] ne: DeviceTree support Yoshinori Sato @ 2015-10-05 13:38 ` David Miller 0 siblings, 0 replies; 6+ messages in thread From: David Miller @ 2015-10-05 13:38 UTC (permalink / raw) To: ysato; +Cc: netdev From: Yoshinori Sato <ysato@users.sourceforge.jp> Date: Fri, 2 Oct 2015 15:04:51 +0900 > + if (dev->dev.of_node) Please use "dev_of_node()". ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v3 1/2] ne: Add h8300 support. 2015-10-02 6:04 [PATCH v2 1/2] ne: Add h8300 support Yoshinori Sato 2015-10-02 6:04 ` [PATCH v2 2/2] ne: DeviceTree support Yoshinori Sato @ 2015-10-08 8:28 ` Yoshinori Sato 2015-10-08 8:28 ` [PATCH v3 2/2] ne: DeviceTree support Yoshinori Sato 1 sibling, 1 reply; 6+ messages in thread From: Yoshinori Sato @ 2015-10-08 8:28 UTC (permalink / raw) To: netdev; +Cc: Yoshinori Sato Changes v3 none Changes v2 Use CONFIG_H8300 Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp> --- drivers/net/ethernet/8390/Kconfig | 2 +- drivers/net/ethernet/8390/ne.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/8390/Kconfig b/drivers/net/ethernet/8390/Kconfig index edf7225..44d7167 100644 --- a/drivers/net/ethernet/8390/Kconfig +++ b/drivers/net/ethernet/8390/Kconfig @@ -88,7 +88,7 @@ config MCF8390 config NE2000 tristate "NE2000/NE1000 support" depends on (ISA || (Q40 && m) || M32R || MACH_TX49XX || \ - ATARI_ETHERNEC) + ATARI_ETHERNEC || H8300) select CRC32 ---help--- If you have a network (Ethernet) card of this type, say Y here. diff --git a/drivers/net/ethernet/8390/ne.c b/drivers/net/ethernet/8390/ne.c index c063b41..90bf71b 100644 --- a/drivers/net/ethernet/8390/ne.c +++ b/drivers/net/ethernet/8390/ne.c @@ -422,7 +422,8 @@ static int __init ne_probe1(struct net_device *dev, unsigned long ioaddr) stop_page = NE1SM_STOP_PG; } -#if defined(CONFIG_PLAT_MAPPI) || defined(CONFIG_PLAT_OAKS32R) +#if defined(CONFIG_PLAT_MAPPI) || defined(CONFIG_PLAT_OAKS32R) || \ + defined(CONFIG_H8300) neX000 = ((SA_prom[14] == 0x57 && SA_prom[15] == 0x57) || (SA_prom[14] == 0x42 && SA_prom[15] == 0x42)); #else -- 2.1.4 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v3 2/2] ne: DeviceTree support. 2015-10-08 8:28 ` [PATCH v3 1/2] ne: Add h8300 support Yoshinori Sato @ 2015-10-08 8:28 ` Yoshinori Sato 2015-10-08 8:43 ` kbuild test robot 0 siblings, 1 reply; 6+ messages in thread From: Yoshinori Sato @ 2015-10-08 8:28 UTC (permalink / raw) To: netdev; +Cc: Yoshinori Sato Changes v3 Use dev_of_node Changes v2 none Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp> --- Documentation/devicetree/bindings/net/ne2000.txt | 17 +++++++++++++++++ drivers/net/ethernet/8390/ne.c | 20 +++++++++++++++++++- 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 Documentation/devicetree/bindings/net/ne2000.txt diff --git a/Documentation/devicetree/bindings/net/ne2000.txt b/Documentation/devicetree/bindings/net/ne2000.txt new file mode 100644 index 0000000..8b0dfbf --- /dev/null +++ b/Documentation/devicetree/bindings/net/ne2000.txt @@ -0,0 +1,17 @@ +NE2000 compatible network controller + +Required properties: +- compatible: "national,ne2000" +- reg: base address and length of NE2000. +- interrupts: interrupt specifier for the sole interrupt. +- national,dcr: DCR setting value. + +Example + + ne2000: ethernet@200000 { + compatible = "national,ne2000"; + reg = <0x200000 32>; + interrupts = <17 0>; + national,dcr = <0x48>; + }; + diff --git a/drivers/net/ethernet/8390/ne.c b/drivers/net/ethernet/8390/ne.c index 90bf71b..82a4ec3 100644 --- a/drivers/net/ethernet/8390/ne.c +++ b/drivers/net/ethernet/8390/ne.c @@ -52,6 +52,7 @@ static const char version2[] = #include <linux/etherdevice.h> #include <linux/jiffies.h> #include <linux/platform_device.h> +#include <linux/of.h> #include <asm/io.h> @@ -72,6 +73,7 @@ static int io[MAX_NE_CARDS]; static int irq[MAX_NE_CARDS]; static int bad[MAX_NE_CARDS]; static u32 ne_msg_enable; +static unsigned int of_dcr_val; #ifdef MODULE module_param_array(io, int, NULL, 0); @@ -171,6 +173,8 @@ bad_clone_list[] __initdata = { # define DCR_VAL 0x48 /* 8-bit mode */ #elif defined(CONFIG_ATARI) /* 8-bit mode on Atari, normal on Q40 */ # define DCR_VAL (MACH_IS_ATARI ? 0x48 : 0x49) +#elif defined(CONFIG_OF_NET) +# define DCR_VAL of_dcr_val #else # define DCR_VAL 0x49 #endif @@ -304,7 +308,8 @@ static int __init ne_probe1(struct net_device *dev, unsigned long ioaddr) struct ei_device *ei_local = netdev_priv(dev); if (!request_region(ioaddr, NE_IO_EXTENT, DRV_NAME)) - return -EBUSY; + if (!request_mem_region(ioaddr, NE_IO_EXTENT, DRV_NAME)) + return -EBUSY; reg0 = inb_p(ioaddr); if (reg0 == 0xFF) { @@ -809,11 +814,18 @@ static int __init ne_drv_probe(struct platform_device *pdev) if (!dev) return -ENOMEM; + if (dev_of_node(dev)) + of_property_read_u32(dev_of_node(dev), + "national,dcr", &of_dcr_val); + /* ne.c doesn't populate resources in platform_device, but * rbtx4927_ne_init and rbtx4938_ne_init do register devices * with resources. */ res = platform_get_resource(pdev, IORESOURCE_IO, 0); + if (!res) + res = platform_get_resource(pdev, IORESOURCE_MEM, 0); + if (res) { dev->base_addr = res->start; dev->irq = platform_get_irq(pdev, 0); @@ -915,12 +927,18 @@ static int ne_drv_resume(struct platform_device *pdev) #define ne_drv_resume NULL #endif +static const struct of_device_id ne2000_of_table[] __maybe_unused = { + { .compatible = "national,ne2000" }, + { } +}; + static struct platform_driver ne_driver = { .remove = ne_drv_remove, .suspend = ne_drv_suspend, .resume = ne_drv_resume, .driver = { .name = DRV_NAME, + .of_match_table = of_match_ptr(ne2000_of_table), }, }; -- 2.1.4 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v3 2/2] ne: DeviceTree support. 2015-10-08 8:28 ` [PATCH v3 2/2] ne: DeviceTree support Yoshinori Sato @ 2015-10-08 8:43 ` kbuild test robot 0 siblings, 0 replies; 6+ messages in thread From: kbuild test robot @ 2015-10-08 8:43 UTC (permalink / raw) To: Yoshinori Sato; +Cc: kbuild-all, netdev, Yoshinori Sato [-- Attachment #1: Type: text/plain, Size: 2612 bytes --] Hi Yoshinori, [auto build test WARNING on v4.3-rc4 -- if it's inappropriate base, please ignore] config: m68k-multi_defconfig (attached as .config) reproduce: wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree make.cross ARCH=m68k All warnings (new ones prefixed by >>): drivers/net/ethernet/8390/ne.c: In function 'ne_drv_probe': >> drivers/net/ethernet/8390/ne.c:817:6: warning: passing argument 1 of 'dev_of_node' from incompatible pointer type if (dev_of_node(dev)) ^ In file included from include/linux/pnp.h:11:0, from include/linux/isapnp.h:26, from drivers/net/ethernet/8390/ne.c:47: include/linux/device.h:967:35: note: expected 'struct device *' but argument is of type 'struct net_device *' static inline struct device_node *dev_of_node(struct device *dev) ^ drivers/net/ethernet/8390/ne.c:818:24: warning: passing argument 1 of 'dev_of_node' from incompatible pointer type of_property_read_u32(dev_of_node(dev), ^ In file included from include/linux/pnp.h:11:0, from include/linux/isapnp.h:26, from drivers/net/ethernet/8390/ne.c:47: include/linux/device.h:967:35: note: expected 'struct device *' but argument is of type 'struct net_device *' static inline struct device_node *dev_of_node(struct device *dev) ^ vim +/dev_of_node +817 drivers/net/ethernet/8390/ne.c 801 } 802 803 outb_p(ENISR_RDC, nic_base + EN0_ISR); /* Ack intr. */ 804 ei_status.dmaing &= ~0x01; 805 } 806 807 static int __init ne_drv_probe(struct platform_device *pdev) 808 { 809 struct net_device *dev; 810 int err, this_dev = pdev->id; 811 struct resource *res; 812 813 dev = alloc_eip_netdev(); 814 if (!dev) 815 return -ENOMEM; 816 > 817 if (dev_of_node(dev)) 818 of_property_read_u32(dev_of_node(dev), 819 "national,dcr", &of_dcr_val); 820 821 /* ne.c doesn't populate resources in platform_device, but 822 * rbtx4927_ne_init and rbtx4938_ne_init do register devices 823 * with resources. 824 */ 825 res = platform_get_resource(pdev, IORESOURCE_IO, 0); --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation [-- Attachment #2: .config.gz --] [-- Type: application/octet-stream, Size: 12569 bytes --] ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2015-10-08 8:42 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-10-02 6:04 [PATCH v2 1/2] ne: Add h8300 support Yoshinori Sato 2015-10-02 6:04 ` [PATCH v2 2/2] ne: DeviceTree support Yoshinori Sato 2015-10-05 13:38 ` David Miller 2015-10-08 8:28 ` [PATCH v3 1/2] ne: Add h8300 support Yoshinori Sato 2015-10-08 8:28 ` [PATCH v3 2/2] ne: DeviceTree support Yoshinori Sato 2015-10-08 8:43 ` kbuild test robot
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).