Skip to contentSkip to conversation

Removing dead code

PATCH Applied Christoph Egger 11 participants 40 messages Jul 14, 2010 – Jul 30, 2010 1 message not in the archive

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

cover Removing dead code

Hi all!

As part of the VAMOS[0] research project at the University of
Erlangen we are looking at multiple integrity errors in linux' configuration system.

I've been running a check on the drivers/net sourcetree for
config Items not defined in Kconfig and found 11 such cases. Sourcecode blocks depending on these Items are not reachable from a vanilla kernel -- dead code. I've seen such dead blocks made on purpose e.g. while integrating new features into the kernel but generally they're just useless.

Each of the patches in this patchset removes on such dead
config Item, I'd be glad if you consider applying them. I've been doing deeper analysis of such issues before and can do so again but I'm not so sure they were fastly usefull.

I build the patches against a vanilla kernel in order to
try if the kernel compiles with this patches

Please keep me informed of this patch getting confirmed /
merged so we can keep track of it.

Regards

Christoph Egger

[0] http://vamos1.informatik.uni-erlangen.de/

Christoph Egger (11):
Removing dead RT2800PCI_SOC
Removing dead {AR,WAVE}LAN
Removing dead CASSINI_QGE_DEBUG
Removing dead CASSINI_MULTICAST_REG_WRITE Removing dead CASSINI_NAPI
Removing dead CHELSIO_T1_COUGAR
Removing dead ARCH_PNX010X
Removing dead SH_HICOSH4
Removing dead ETRAX_NETWORK_RED_ON_NO_CONNECTION Removing dead NETWINDER_{T,R}X_DMA_PROBLEMS Removing dead REDWOOD_{5,6}

 drivers/net/Space.c                     |    6 --
 drivers/net/cassini.c                   |   25 +--------
 drivers/net/cassini.h                   |    4 -
 drivers/net/chelsio/subr.c              |   48 +---------------
 drivers/net/cris/eth_v10.c              |    4 -
 drivers/net/cs89x0.c                    |   96 +------------------------------
 drivers/net/cs89x0.h                    |    4 -
 drivers/net/irda/w83977af_ir.c          |   33 +---------
 drivers/net/smc91x.h                    |   37 ------------
 drivers/net/wireless/rt2x00/Kconfig     |    5 --
 drivers/net/wireless/rt2x00/rt2800pci.c |   39 -------------
 11 files changed, 9 insertions(+), 292 deletions(-)
#1 lore raw

PATCH 1/11 Removing dead RT2800PCI_SOC

While RT2800PCI_SOC exists in Kconfig, it depends on either RALINK_RT288X or RALINK_RT305X which are both not available in Kconfig so all Code depending on that can't ever be selected and, if there's no plan to add these options, should be cleaned up

---
 drivers/net/wireless/rt2x00/Kconfig     |    5 ----
 drivers/net/wireless/rt2x00/rt2800pci.c |   39 -------------------------------
 2 files changed, 0 insertions(+), 44 deletions(-)
drivers/net/wireless/rt2x00/Kconfig +0 -5
index eea1ef2..d59195a 100644
@@ -58,11 +58,6 @@ config RT2800PCI_PCI
 	depends on PCI
 	default y
 
-config RT2800PCI_SOC
-	boolean
-	depends on RALINK_RT288X || RALINK_RT305X
-	default y
-
 config RT2800PCI
 	tristate "Ralink rt28xx/rt30xx/rt35xx (PCI/PCIe/PCMCIA) support (EXPERIMENTAL)"
 	depends on (RT2800PCI_PCI || RT2800PCI_SOC) && EXPERIMENTAL
drivers/net/wireless/rt2x00/rt2800pci.c +0 -39
index b2f2327..1445038 100644
@@ -85,18 +85,9 @@ static void rt2800pci_mcu_status(struct rt2x00_dev *rt2x00dev, const u8 token)
 	rt2800_register_write(rt2x00dev, H2M_MAILBOX_CID, ~0);
 }
 
-#ifdef CONFIG_RT2800PCI_SOC
-static void rt2800pci_read_eeprom_soc(struct rt2x00_dev *rt2x00dev)
-{
-	u32 *base_addr = (u32 *) KSEG1ADDR(0x1F040000); /* XXX for RT3052 */
-
-	memcpy_fromio(rt2x00dev->eeprom, base_addr, EEPROM_SIZE);
-}
-#else
 static inline void rt2800pci_read_eeprom_soc(struct rt2x00_dev *rt2x00dev)
 {
 }
-#endif /* CONFIG_RT2800PCI_SOC */
 
 #ifdef CONFIG_RT2800PCI_PCI
 static void rt2800pci_eepromregister_read(struct eeprom_93cx6 *eeprom)
@@ -1160,25 +1151,6 @@ MODULE_DEVICE_TABLE(pci, rt2800pci_device_table);
 #endif /* CONFIG_RT2800PCI_PCI */
 MODULE_LICENSE("GPL");
 
-#ifdef CONFIG_RT2800PCI_SOC
-static int rt2800soc_probe(struct platform_device *pdev)
-{
-	return rt2x00soc_probe(pdev, &rt2800pci_ops);
-}
-
-static struct platform_driver rt2800soc_driver = {
-	.driver		= {
-		.name		= "rt2800_wmac",
-		.owner		= THIS_MODULE,
-		.mod_name	= KBUILD_MODNAME,
-	},
-	.probe		= rt2800soc_probe,
-	.remove		= __devexit_p(rt2x00soc_remove),
-	.suspend	= rt2x00soc_suspend,
-	.resume		= rt2x00soc_resume,
-};
-#endif /* CONFIG_RT2800PCI_SOC */
-
 #ifdef CONFIG_RT2800PCI_PCI
 static struct pci_driver rt2800pci_driver = {
 	.name		= KBUILD_MODNAME,
@@ -1194,17 +1166,9 @@ static int __init rt2800pci_init(void)
 {
 	int ret = 0;
 
-#ifdef CONFIG_RT2800PCI_SOC
-	ret = platform_driver_register(&rt2800soc_driver);
-	if (ret)
-		return ret;
-#endif
 #ifdef CONFIG_RT2800PCI_PCI
 	ret = pci_register_driver(&rt2800pci_driver);
 	if (ret) {
-#ifdef CONFIG_RT2800PCI_SOC
-		platform_driver_unregister(&rt2800soc_driver);
-#endif
 		return ret;
 	}
 #endif
@@ -1217,9 +1181,6 @@ static void __exit rt2800pci_exit(void)
 #ifdef CONFIG_RT2800PCI_PCI
 	pci_unregister_driver(&rt2800pci_driver);
 #endif
-#ifdef CONFIG_RT2800PCI_SOC
-	platform_driver_unregister(&rt2800soc_driver);
-#endif
 }
 
 module_init(rt2800pci_init);
Signature · 1 line
1.7.0.4
#2 lore raw

Re: [PATCH 01/11] Removing dead RT2800PCI_SOC

Quoted 6 lines · Christoph Egger

While RT2800PCI_SOC exists in Kconfig, it depends on either RALINK_RT288X or RALINK_RT305X which are both not available in Kconfig so all Code depending on that can't ever be selected and, if there's no plan to add these options, should be cleaned up

NAK,

this is not dead code, it is needed for the Ralink System-on-Chip Platform devices.

While I can't fix Kconfig errors and the current KConfig file may be wrong, this code cannot and will not be deleted.

Luis Correia
rt2x00 project admin

Quoted 106 lines

---
 drivers/net/wireless/rt2x00/Kconfig     |    5 ---- drivers/net/wireless/rt2x00/rt2800pci.c |   39 -------------------------------

 2 files changed, 0 insertions(+), 44 deletions(-)
drivers/net/wireless/rt2x00/Kconfig +0 -0
index eea1ef2..d59195a 100644
@@ -58,11 +58,6 @@ config RT2800PCI_PCI

       depends on PCI
       default y

drivers/net/wireless/rt2x00/Kconfig +0 -5
-config RT2800PCI_SOC
-       boolean
-       depends on RALINK_RT288X || RALINK_RT305X
-       default y
-

 config RT2800PCI
       tristate "Ralink rt28xx/rt30xx/rt35xx (PCI/PCIe/PCMCIA) support (EXPERIMENTAL)" depends on (RT2800PCI_PCI || RT2800PCI_SOC) && EXPERIMENTAL

drivers/net/wireless/rt2x00/rt2800pci.c +0 -40
index b2f2327..1445038 100644
@@ -85,18 +85,9 @@ static void rt2800pci_mcu_status(struct rt2x00_dev *rt2x00dev, const u8 token)
        rt2800_register_write(rt2x00dev, H2M_MAILBOX_CID, ~0);
  }
 
-#ifdef CONFIG_RT2800PCI_SOC
-static void rt2800pci_read_eeprom_soc(struct rt2x00_dev *rt2x00dev)
-{
-       u32 *base_addr = (u32 *) KSEG1ADDR(0x1F040000); /* XXX for RT3052 */
-
-       memcpy_fromio(rt2x00dev->eeprom, base_addr, EEPROM_SIZE);
-}
-#else
  static inline void rt2800pci_read_eeprom_soc(struct rt2x00_dev *rt2x00dev)
  {
  }
-#endif /* CONFIG_RT2800PCI_SOC */
 
  #ifdef CONFIG_RT2800PCI_PCI
  static void rt2800pci_eepromregister_read(struct eeprom_93cx6 *eeprom)
@@ -1160,25 +1151,6 @@ MODULE_DEVICE_TABLE(pci, rt2800pci_device_table);
  #endif /* CONFIG_RT2800PCI_PCI */
  MODULE_LICENSE("GPL");
 
-#ifdef CONFIG_RT2800PCI_SOC
-static int rt2800soc_probe(struct platform_device *pdev)
-{
-       return rt2x00soc_probe(pdev, &rt2800pci_ops);
-}
-
-static struct platform_driver rt2800soc_driver = {
-       .driver         = {
-               .name           = "rt2800_wmac",
-               .owner          = THIS_MODULE,
-               .mod_name       = KBUILD_MODNAME,
-       },
-       .probe          = rt2800soc_probe,
-       .remove         = __devexit_p(rt2x00soc_remove),
-       .suspend        = rt2x00soc_suspend,
-       .resume         = rt2x00soc_resume,
-};
-#endif /* CONFIG_RT2800PCI_SOC */
-
  #ifdef CONFIG_RT2800PCI_PCI
  static struct pci_driver rt2800pci_driver = {
        .name           = KBUILD_MODNAME,
@@ -1194,17 +1166,9 @@ static int __init rt2800pci_init(void)
  {
        int ret = 0;
 
-#ifdef CONFIG_RT2800PCI_SOC
-       ret = platform_driver_register(&rt2800soc_driver);
-       if (ret)
-               return ret;
-#endif
  #ifdef CONFIG_RT2800PCI_PCI
        ret = pci_register_driver(&rt2800pci_driver);
        if (ret) {
-#ifdef CONFIG_RT2800PCI_SOC
-               platform_driver_unregister(&rt2800soc_driver);
-#endif
                return ret;
        }
  #endif
@@ -1217,9 +1181,6 @@ static void __exit rt2800pci_exit(void)
  #ifdef CONFIG_RT2800PCI_PCI
        pci_unregister_driver(&rt2800pci_driver);
  #endif
-#ifdef CONFIG_RT2800PCI_SOC
-       platform_driver_unregister(&rt2800soc_driver);
-#endif
  }
 
  module_init(rt2800pci_init);
--

1.7.0.4

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

#3 lore raw

Re: [PATCH 01/11] Removing dead RT2800PCI_SOC

Quoted 8 lines · Luis Correia
Quoted 6 lines · Christoph Egger

While RT2800PCI_SOC exists in Kconfig, it depends on either RALINK_RT288X or RALINK_RT305X which are both not available in Kconfig so all Code depending on that can't ever be selected and, if there's no plan to add these options, should be cleaned up

Quoted 7 lines

NAK,

this is not dead code, it is needed for the Ralink System-on-Chip Platform devices.

While I can't fix Kconfig errors and the current KConfig file may be wrong, this code cannot and will not be deleted.

When the config option was introduced, the config options RALINK_RT288X and RALINK_RT305X were supposed to be merged as well soon after by somebody (Felix?)

But since testing is done on SoC boards by Helmut and Felix, I assume the code isn't dead but actually in use.

Ivo

#4 lore raw

Re: [PATCH 01/11] Removing dead RT2800PCI_SOC

Quoted 14 lines · Ivo Van Doorn
Quoted 13 lines · Luis Correia
Quoted 6 lines · Christoph Egger

While RT2800PCI_SOC exists in Kconfig, it depends on either RALINK_RT288X or RALINK_RT305X which are both not available in Kconfig so all Code depending on that can't ever be selected and, if there's no plan to add these options, should be cleaned up

NAK,

this is not dead code, it is needed for the Ralink System-on-Chip Platform devices.

Quoted 8 lines
Quoted 2 lines

While I can't fix Kconfig errors and the current KConfig file may be wrong, this code cannot and will not be deleted.

When the config option was introduced, the config options RALINK_RT288X and RALINK_RT305X were supposed to be merged as well soon after by somebody (Felix?)

But since testing is done on SoC boards by Helmut and Felix, I assume the code isn't dead but actually in use.

Perhaps Helmut and Felix can send us the missing code?

John

Signature · 6 lines
John W. Linville		Someday the world will need a hero, and you
[email protected]			might be all we have.  Be ready.
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
#5 lore raw

Re: [PATCH 01/11] Removing dead RT2800PCI_SOC

Quoted 18 lines · John W. Linville
Quoted 17 lines · Ivo Van Doorn
Quoted 15 lines · Luis Correia
Quoted 6 lines · Christoph Egger

While RT2800PCI_SOC exists in Kconfig, it depends on either RALINK_RT288X or RALINK_RT305X which are both not available in Kconfig so all Code depending on that can't ever be selected and, if there's no plan to add these options, should be cleaned up

NAK,

this is not dead code, it is needed for the Ralink System-on-Chip Platform devices.

While I can't fix Kconfig errors and the current KConfig file may be wrong, this code cannot and will not be deleted.

Quoted 7 lines
Quoted 5 lines

When the config option was introduced, the config options RALINK_RT288X and RALINK_RT305X were supposed to be merged as well soon after by somebody (Felix?)

But since testing is done on SoC boards by Helmut and Felix, I assume the code isn't dead but actually in use.

Perhaps Helmut and Felix can send us the missing code?

The missing code is a MIPS platform port, which is currently being maintained in OpenWrt, but is not ready for upstream submission yet. I'm not working on this code at the moment, but I think it will be submitted once it's ready.

- Felix
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html

#6 lore raw

Re: [PATCH 01/11] Removing dead RT2800PCI_SOC

Quoted 22 lines · Felix Fietkau
Quoted 21 lines · John W. Linville
Quoted 20 lines · Ivo Van Doorn
Quoted 8 lines · Luis Correia
Quoted 6 lines · Christoph Egger

While RT2800PCI_SOC exists in Kconfig, it depends on either RALINK_RT288X or RALINK_RT305X which are both not available in Kconfig so all Code depending on that can't ever be selected and, if there's no plan to add these options, should be cleaned up

Quoted 7 lines

NAK,

this is not dead code, it is needed for the Ralink System-on-Chip Platform devices.

While I can't fix Kconfig errors and the current KConfig file may be wrong, this code cannot and will not be deleted.

When the config option was introduced, the config options RALINK_RT288X and RALINK_RT305X were supposed to be merged as well soon after by somebody (Felix?)

Quoted 8 lines
Quoted 4 lines
Quoted 2 lines

But since testing is done on SoC boards by Helmut and Felix, I assume the code isn't dead but actually in use.

Perhaps Helmut and Felix can send us the missing code?

The missing code is a MIPS platform port, which is currently being maintained in OpenWrt, but is not ready for upstream submission yet. I'm not working on this code at the moment, but I think it will be submitted once it's ready.

People are using automatic scripts to catch unused config options nowadays so the issue is quite likely to come back again sooner or later..

Would it be possible to improve situation somehow till the missing parts get merged? Maybe by adding a tiny comment documenting RT2800PCI_SOC situation to Kconfig (if the config option itself really cannot be removed) until all code is ready etc.?

I bet that Christoph would be willing to update his patch if you ask him nicely..

Thanks,
--
Bartlomiej Zolnierkiewicz
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html

A message that is not in the archive (sent off-list or not yet received): [email protected]

#8 lore raw

Re: [PATCH 01/11] Removing dead RT2800PCI_SOC

Quoted 43 lines · Helmut Schaa

On Thu, Jul 15, 2010 at 10:41 AM, Bartlomiej Zolnierkiewicz <[email protected] <mailto:[email protected]>> wrote:

On Wednesday 14 July 2010 04:44:44 pm Felix Fietkau wrote:
> On 2010-07-14 3:15 PM, John W. Linville wrote:
> > On Wed, Jul 14, 2010 at 02:52:14PM +0200, Ivo Van Doorn wrote:
> >> On Wed, Jul 14, 2010 at 2:46 PM, Luis Correia <[email protected] <mailto:[email protected]>> wrote:
> >> > On Wed, Jul 14, 2010 at 13:39, Christoph Egger <[email protected] <mailto:[email protected]>> wrote:
> >> >> While RT2800PCI_SOC exists in Kconfig, it depends on either
> >> >> RALINK_RT288X or RALINK_RT305X which are both not available in Kconfig
> >> >> so all Code depending on that can't ever be selected and, if there's
> >> >> no plan to add these options, should be cleaned up
> >> >>
> >> >> Signed-off-by: Christoph Egger <[email protected] <mailto:[email protected]>>
> >> >
> >> > NAK,
> >> >
> >> > this is not dead code, it is needed for the Ralink System-on-Chip
> >> > Platform devices.
> >> >
> >> > While I can't fix Kconfig errors and the current KConfig file may be
> >> > wrong, this code cannot and will not be deleted.
> >>
> >> When the config option was introduced, the config options RALINK_RT288X and
> >> RALINK_RT305X were supposed to be merged as well soon after by somebody (Felix?)
> >>
> >> But since testing is done on SoC boards by Helmut and Felix, I assume the code
> >> isn't dead but actually in use.
> >
> > Perhaps Helmut and Felix can send us the missing code?
> The missing code is a MIPS platform port, which is currently being
> maintained in OpenWrt, but is not ready for upstream submission yet.
> I'm not working on this code at the moment, but I think it will be
> submitted once it's ready.

People are using automatic scripts to catch unused config options nowadays so the issue is quite likely to come back again sooner or later..

Would it be possible to improve situation somehow till the missing parts get merged? Maybe by adding a tiny comment documenting RT2800PCI_SOC situation to Kconfig (if the config option itself really cannot be removed) until all code is ready etc.?

Quoted 4 lines

Or we could just remove RT2800PCI_SOC completely and build the soc specific parts always as part of rt2800pci. I mean it's not much code, just the platform driver stuff and the eeprom access.

I'm not sure if that is feasible. Sure, we can reduce the usage of the variable by unconditionally compiling in the generic SOC code, but we should not unconditionally register the SOC platform device, which is currently also under the scope of this Kconfig variable.

---
Gertjan.

#9 lore raw

Re: [PATCH 01/11] Removing dead RT2800PCI_SOC

Quoted 50 lines · Gertjan van Wingerde
Quoted 43 lines · Helmut Schaa

On Thu, Jul 15, 2010 at 10:41 AM, Bartlomiej Zolnierkiewicz <[email protected] <mailto:[email protected]>> wrote:

    On Wednesday 14 July 2010 04:44:44 pm Felix Fietkau wrote:
    > On 2010-07-14 3:15 PM, John W. Linville wrote:
    > > On Wed, Jul 14, 2010 at 02:52:14PM +0200, Ivo Van Doorn wrote:
    > >> On Wed, Jul 14, 2010 at 2:46 PM, Luis Correia <[email protected] <mailto:[email protected]>> wrote:
    > >> > On Wed, Jul 14, 2010 at 13:39, Christoph Egger <[email protected] <mailto:[email protected]>> wrote:
    > >> >> While RT2800PCI_SOC exists in Kconfig, it depends on either
    > >> >> RALINK_RT288X or RALINK_RT305X which are both not available in Kconfig
    > >> >> so all Code depending on that can't ever be selected and, if there's
    > >> >> no plan to add these options, should be cleaned up
    > >> >>
    > >> >> Signed-off-by: Christoph Egger <[email protected] <mailto:[email protected]>>
    > >> >
    > >> > NAK,
    > >> >
    > >> > this is not dead code, it is needed for the Ralink System-on-Chip
    > >> > Platform devices.
    > >> >
    > >> > While I can't fix Kconfig errors and the current KConfig file may be
    > >> > wrong, this code cannot and will not be deleted.
    > >>
    > >> When the config option was introduced, the config options RALINK_RT288X and
    > >> RALINK_RT305X were supposed to be merged as well soon after by somebody (Felix?)
    > >>
    > >> But since testing is done on SoC boards by Helmut and Felix, I assume the code
    > >> isn't dead but actually in use.
    > >
    > > Perhaps Helmut and Felix can send us the missing code?
    > The missing code is a MIPS platform port, which is currently being
    > maintained in OpenWrt, but is not ready for upstream submission yet.
    > I'm not working on this code at the moment, but I think it will be
    > submitted once it's ready.

    People are using automatic scripts to catch unused config options nowadays so the issue is quite likely to come back again sooner or later..

    Would it be possible to improve situation somehow till the missing parts get merged?  Maybe by adding a tiny comment documenting RT2800PCI_SOC situation to Kconfig (if the config option itself really cannot be removed) until all code is ready etc.?

Quoted 4 lines

Or we could just remove RT2800PCI_SOC completely and build the soc specific parts always as part of rt2800pci. I mean it's not much code, just the platform driver stuff and the eeprom access.

Quoted 4 lines

I'm not sure if that is feasible. Sure, we can reduce the usage of the variable by unconditionally compiling in the generic SOC code, but we should not unconditionally register the SOC platform device, which is currently also under the scope of this Kconfig variable.

Ehm, no, the platform device is not registered in rt2800pci at all, it's just the platform
driver that gets registered there. The platform device will be registered in the according
board init code (that only resides in openwrt at the moment).

Helmut

#10 lore raw

Re: [PATCH 01/11] Removing dead RT2800PCI_SOC

Quoted 57 lines · Helmut Schaa
Quoted 50 lines · Gertjan van Wingerde
Quoted 43 lines · Helmut Schaa

On Thu, Jul 15, 2010 at 10:41 AM, Bartlomiej Zolnierkiewicz <[email protected] <mailto:[email protected]>> wrote:

On Wednesday 14 July 2010 04:44:44 pm Felix Fietkau wrote:
> On 2010-07-14 3:15 PM, John W. Linville wrote:
> > On Wed, Jul 14, 2010 at 02:52:14PM +0200, Ivo Van Doorn wrote:
> >> On Wed, Jul 14, 2010 at 2:46 PM, Luis Correia <[email protected] <mailto:[email protected]>> wrote:
> >> > On Wed, Jul 14, 2010 at 13:39, Christoph Egger <[email protected] <mailto:[email protected]>> wrote:
> >> >> While RT2800PCI_SOC exists in Kconfig, it depends on either
> >> >> RALINK_RT288X or RALINK_RT305X which are both not available in Kconfig
> >> >> so all Code depending on that can't ever be selected and, if there's
> >> >> no plan to add these options, should be cleaned up
> >> >>
> >> >> Signed-off-by: Christoph Egger <[email protected] <mailto:[email protected]>>
> >> >
> >> > NAK,
> >> >
> >> > this is not dead code, it is needed for the Ralink System-on-Chip
> >> > Platform devices.
> >> >
> >> > While I can't fix Kconfig errors and the current KConfig file may be
> >> > wrong, this code cannot and will not be deleted.
> >>
> >> When the config option was introduced, the config options RALINK_RT288X and
> >> RALINK_RT305X were supposed to be merged as well soon after by somebody (Felix?)
> >>
> >> But since testing is done on SoC boards by Helmut and Felix, I assume the code
> >> isn't dead but actually in use.
> >
> > Perhaps Helmut and Felix can send us the missing code?
> The missing code is a MIPS platform port, which is currently being
> maintained in OpenWrt, but is not ready for upstream submission yet.
> I'm not working on this code at the moment, but I think it will be
> submitted once it's ready.

People are using automatic scripts to catch unused config options nowadays so the issue is quite likely to come back again sooner or later..

Would it be possible to improve situation somehow till the missing parts get merged? Maybe by adding a tiny comment documenting RT2800PCI_SOC situation to Kconfig (if the config option itself really cannot be removed) until all code is ready etc.?

Quoted 4 lines

Or we could just remove RT2800PCI_SOC completely and build the soc specific parts always as part of rt2800pci. I mean it's not much code, just the platform driver stuff and the eeprom access.

Quoted 4 lines

I'm not sure if that is feasible. Sure, we can reduce the usage of the variable by unconditionally compiling in the generic SOC code, but we should not unconditionally register the SOC platform device, which is currently also under the scope of this Kconfig variable.

Quoted 6 lines

Ehm, no, the platform device is not registered in rt2800pci at all, it's just the platform
driver that gets registered there. The platform device will be registered in the according
board init code (that only resides in openwrt at the moment).

OK. Didn't know that. Sounds good then.

However, I've tried this in my local tree, and now compilation fails on the x86 platform due to a missing KSEG1ADDR macro. How do you suggest to handle the potentially missing macro?

---
Gertjan.

#11 lore raw

Re: [PATCH 01/11] Removing dead RT2800PCI_SOC

Am Freitag 16 Juli 2010 schrieb Gertjan van Wingerde:

Quoted 65 lines · Helmut Schaa
Quoted 57 lines
Quoted 50 lines · Gertjan van Wingerde
Quoted 43 lines · Helmut Schaa

On Thu, Jul 15, 2010 at 10:41 AM, Bartlomiej Zolnierkiewicz <[email protected] <mailto:[email protected]>> wrote:

On Wednesday 14 July 2010 04:44:44 pm Felix Fietkau wrote:
> On 2010-07-14 3:15 PM, John W. Linville wrote:
> > On Wed, Jul 14, 2010 at 02:52:14PM +0200, Ivo Van Doorn wrote:
> >> On Wed, Jul 14, 2010 at 2:46 PM, Luis Correia <[email protected] <mailto:[email protected]>> wrote:
> >> > On Wed, Jul 14, 2010 at 13:39, Christoph Egger <[email protected] <mailto:[email protected]>> wrote:
> >> >> While RT2800PCI_SOC exists in Kconfig, it depends on either
> >> >> RALINK_RT288X or RALINK_RT305X which are both not available in Kconfig
> >> >> so all Code depending on that can't ever be selected and, if there's
> >> >> no plan to add these options, should be cleaned up
> >> >>
> >> >> Signed-off-by: Christoph Egger <[email protected] <mailto:[email protected]>>
> >> >
> >> > NAK,
> >> >
> >> > this is not dead code, it is needed for the Ralink System-on-Chip
> >> > Platform devices.
> >> >
> >> > While I can't fix Kconfig errors and the current KConfig file may be
> >> > wrong, this code cannot and will not be deleted.
> >>
> >> When the config option was introduced, the config options RALINK_RT288X and
> >> RALINK_RT305X were supposed to be merged as well soon after by somebody (Felix?)
> >>
> >> But since testing is done on SoC boards by Helmut and Felix, I assume the code
> >> isn't dead but actually in use.
> >
> > Perhaps Helmut and Felix can send us the missing code?
> The missing code is a MIPS platform port, which is currently being
> maintained in OpenWrt, but is not ready for upstream submission yet.
> I'm not working on this code at the moment, but I think it will be
> submitted once it's ready.

People are using automatic scripts to catch unused config options nowadays so the issue is quite likely to come back again sooner or later..

Would it be possible to improve situation somehow till the missing parts get merged? Maybe by adding a tiny comment documenting RT2800PCI_SOC situation to Kconfig (if the config option itself really cannot be removed) until all code is ready etc.?

Quoted 4 lines

Or we could just remove RT2800PCI_SOC completely and build the soc specific parts always as part of rt2800pci. I mean it's not much code, just the platform driver stuff and the eeprom access.

Quoted 4 lines

I'm not sure if that is feasible. Sure, we can reduce the usage of the variable by unconditionally compiling in the generic SOC code, but we should not unconditionally register the SOC platform device, which is currently also under the scope of this Kconfig variable.

Quoted 6 lines

Ehm, no, the platform device is not registered in rt2800pci at all, it's just the platform
driver that gets registered there. The platform device will be registered in the according
board init code (that only resides in openwrt at the moment).

Quoted 5 lines

OK. Didn't know that. Sounds good then.

However, I've tried this in my local tree, and now compilation fails on the x86 platform due to a missing KSEG1ADDR macro. How do you suggest to handle the potentially missing macro?

We can convert it to an ioremap call, that should be available on all platforms.

Helmut

#12 lore raw

Re: [PATCH 01/11] Removing dead RT2800PCI_SOC

In reply to Ivo Van Doorn
Quoted 17 lines · Ivo Van Doorn
Quoted 8 lines · Luis Correia
Quoted 6 lines · Christoph Egger

While RT2800PCI_SOC exists in Kconfig, it depends on either RALINK_RT288X or RALINK_RT305X which are both not available in Kconfig so all Code depending on that can't ever be selected and, if there's no plan to add these options, should be cleaned up

Quoted 7 lines

NAK,

this is not dead code, it is needed for the Ralink System-on-Chip Platform devices.

While I can't fix Kconfig errors and the current KConfig file may be wrong, this code cannot and will not be deleted.

Quoted 7 lines

When the config option was introduced, the config options RALINK_RT288X and RALINK_RT305X were supposed to be merged as well soon after by somebody (Felix?)

But since testing is done on SoC boards by Helmut and Felix, I assume the code isn't dead but actually in use.

Ivo

I fully agree with Luis and Ivo that the proposed patch is invalid and shouldn't be applied (the "code cannot and will not be deleted" anyway)..

[ Under "The New Normal" rules the code doesn't even have to work to be
merged and/or stay in the kernel so 9 months of code not being used by any real user doesn't matter a tiny bit.. ]

--
Bartlomiej Zolnierkiewicz

#13 lore raw

PATCH 2/11 Removing dead {AR,WAVE}LAN

In reply to Christoph Egger

{AR,WAVE}LAN doesn't exist in Kconfig, therefore removing all references for it from the source code.

---
 drivers/net/Space.c |    6 ------
 1 files changed, 0 insertions(+), 6 deletions(-)
drivers/net/Space.c +0 -6
index 3b79c6c..9bb405b 100644
@@ -218,12 +218,6 @@ static struct devprobe2 isa_probes[] __initdata = {
 #ifdef CONFIG_EL1		/* 3c501 */
 	{el1_probe, 0},
 #endif
-#ifdef CONFIG_WAVELAN		/* WaveLAN */
-	{wavelan_probe, 0},
-#endif
-#ifdef CONFIG_ARLAN		/* Aironet */
-	{arlan_probe, 0},
-#endif
 #ifdef CONFIG_EL16		/* 3c507 */
 	{el16_probe, 0},
 #endif
Signature · 1 line
1.7.0.4
maintainer Applied
#14 lore raw

Re: [PATCH 02/11] Removing dead {AR,WAVE}LAN

From: Christoph Egger <[email protected]>
Date: Wed, 14 Jul 2010 14:39:52 +0200

Quoted 4 lines

{AR,WAVE}LAN doesn't exist in Kconfig, therefore removing all references for it from the source code.

Applied to net-next-2.6

#15 lore raw

PATCH 3/11 Removing dead CASSINI_QGE_DEBUG

In reply to Christoph Egger

CASSINI_QGE_DEBUG doesn't exist in Kconfig, therefore removing all references for it from the source code.

---
 drivers/net/cassini.h |    4 ----
 1 files changed, 0 insertions(+), 4 deletions(-)
drivers/net/cassini.h +0 -4
index fd17a00..dbc4787 100644
@@ -2844,10 +2844,6 @@ struct cas {
 	atomic_t		reset_task_pending_all;
 #endif
 
-#ifdef CONFIG_CASSINI_QGE_DEBUG
-	atomic_t interrupt_seen; /* 1 if any interrupts are getting through */
-#endif
-
 	/* Link-down problem workaround */
 #define LINK_TRANSITION_UNKNOWN 	0
 #define LINK_TRANSITION_ON_FAILURE 	1
Signature · 1 line
1.7.0.4
maintainer Applied
#16 lore raw

Re: [PATCH 03/11] Removing dead CASSINI_QGE_DEBUG

From: Christoph Egger <[email protected]>
Date: Wed, 14 Jul 2010 14:39:58 +0200

Quoted 4 lines

CASSINI_QGE_DEBUG doesn't exist in Kconfig, therefore removing all references for it from the source code.

Applied, thanks.

#17 lore raw

PATCH 4/11 Removing dead CASSINI_MULTICAST_REG_WRITE

In reply to Christoph Egger

CASSINI_MULTICAST_REG_WRITE doesn't exist in Kconfig, therefore removing all references for it from the source code.

---
 drivers/net/cassini.c |   20 +-------------------
 1 files changed, 1 insertions(+), 19 deletions(-)
drivers/net/cassini.c +1 -19
index 04a03f7..0d911ba 100644
@@ -3063,9 +3063,6 @@ static void cas_init_mac(struct cas *cp)
 {
 	unsigned char *e = &cp->dev->dev_addr[0];
 	int i;
-#ifdef CONFIG_CASSINI_MULTICAST_REG_WRITE
-	u32 rxcfg;
-#endif
 	cas_mac_reset(cp);
 
 	/* setup core arbitration weight register */
@@ -3133,23 +3130,8 @@ static void cas_init_mac(struct cas *cp)
 	writel(0xc200, cp->regs + REG_MAC_ADDRN(43));
 	writel(0x0180, cp->regs + REG_MAC_ADDRN(44));
 
-#ifndef CONFIG_CASSINI_MULTICAST_REG_WRITE
 	cp->mac_rx_cfg = cas_setup_multicast(cp);
-#else
-	/* WTZ: Do what Adrian did in cas_set_multicast. Doing
-	 * a writel does not seem to be necessary because Cassini
-	 * seems to preserve the configuration when we do the reset.
-	 * If the chip is in trouble, though, it is not clear if we
-	 * can really count on this behavior. cas_set_multicast uses
-	 * spin_lock_irqsave, but we are called only in cas_init_hw and
-	 * cas_init_hw is protected by cas_lock_all, which calls
-	 * spin_lock_irq (so it doesn't need to save the flags, and
-	 * we should be OK for the writel, as that is the only
-	 * difference).
-	 */
-	cp->mac_rx_cfg = rxcfg = cas_setup_multicast(cp);
-	writel(rxcfg, cp->regs + REG_MAC_RX_CFG);
-#endif
+
 	spin_lock(&cp->stat_lock[N_TX_RINGS]);
 	cas_clear_mac_err(cp);
 	spin_unlock(&cp->stat_lock[N_TX_RINGS]);
Signature · 1 line
1.7.0.4
#18 lore raw

PATCH 4/11 Removing dead CASSINI_MULTICAST_REG_WRITE

In reply to Christoph Egger

CASSINI_MULTICAST_REG_WRITE doesn't exist in Kconfig, therefore removing all references for it from the source code.

---
 drivers/net/cassini.c |   20 +-------------------
 1 files changed, 1 insertions(+), 19 deletions(-)
drivers/net/cassini.c +1 -19
index 04a03f7..0d911ba 100644
@@ -3063,9 +3063,6 @@ static void cas_init_mac(struct cas *cp)
 {
 	unsigned char *e = &cp->dev->dev_addr[0];
 	int i;
-#ifdef CONFIG_CASSINI_MULTICAST_REG_WRITE
-	u32 rxcfg;
-#endif
 	cas_mac_reset(cp);
 
 	/* setup core arbitration weight register */
@@ -3133,23 +3130,8 @@ static void cas_init_mac(struct cas *cp)
 	writel(0xc200, cp->regs + REG_MAC_ADDRN(43));
 	writel(0x0180, cp->regs + REG_MAC_ADDRN(44));
 
-#ifndef CONFIG_CASSINI_MULTICAST_REG_WRITE
 	cp->mac_rx_cfg = cas_setup_multicast(cp);
-#else
-	/* WTZ: Do what Adrian did in cas_set_multicast. Doing
-	 * a writel does not seem to be necessary because Cassini
-	 * seems to preserve the configuration when we do the reset.
-	 * If the chip is in trouble, though, it is not clear if we
-	 * can really count on this behavior. cas_set_multicast uses
-	 * spin_lock_irqsave, but we are called only in cas_init_hw and
-	 * cas_init_hw is protected by cas_lock_all, which calls
-	 * spin_lock_irq (so it doesn't need to save the flags, and
-	 * we should be OK for the writel, as that is the only
-	 * difference).
-	 */
-	cp->mac_rx_cfg = rxcfg = cas_setup_multicast(cp);
-	writel(rxcfg, cp->regs + REG_MAC_RX_CFG);
-#endif
+
 	spin_lock(&cp->stat_lock[N_TX_RINGS]);
 	cas_clear_mac_err(cp);
 	spin_unlock(&cp->stat_lock[N_TX_RINGS]);
Signature · 1 line
1.7.0.4
#19 lore raw

PATCH 5/11 Removing dead CASSINI_NAPI

In reply to Christoph Egger

CASSINI_NAPI doesn't exist in Kconfig, therefore removing all references for it from the source code.

---
 drivers/net/cassini.c |    5 -----
 1 files changed, 0 insertions(+), 5 deletions(-)
drivers/net/cassini.c +0 -5
index 0d911ba..28c88ee 100644
@@ -107,12 +107,7 @@
 #define cas_page_unmap(x)    kunmap_atomic((x), KM_SKB_DATA_SOFTIRQ)
 #define CAS_NCPUS            num_online_cpus()
 
-#ifdef CONFIG_CASSINI_NAPI
-#define USE_NAPI
-#define cas_skb_release(x)  netif_receive_skb(x)
-#else
 #define cas_skb_release(x)  netif_rx(x)
-#endif
 
 /* select which firmware to use */
 #define USE_HP_WORKAROUND
Signature · 1 line
1.7.0.4
#20 lore raw

PATCH 5/11 Removing dead CASSINI_NAPI

In reply to Christoph Egger

CASSINI_NAPI doesn't exist in Kconfig, therefore removing all references for it from the source code.

---
 drivers/net/cassini.c |    5 -----
 1 files changed, 0 insertions(+), 5 deletions(-)
drivers/net/cassini.c +0 -5
index 0d911ba..28c88ee 100644
@@ -107,12 +107,7 @@
 #define cas_page_unmap(x)    kunmap_atomic((x), KM_SKB_DATA_SOFTIRQ)
 #define CAS_NCPUS            num_online_cpus()
 
-#ifdef CONFIG_CASSINI_NAPI
-#define USE_NAPI
-#define cas_skb_release(x)  netif_receive_skb(x)
-#else
 #define cas_skb_release(x)  netif_rx(x)
-#endif
 
 /* select which firmware to use */
 #define USE_HP_WORKAROUND
Signature · 1 line
1.7.0.4
#22 lore raw

PATCH 6/11 Removing dead CHELSIO_T1_COUGAR

In reply to Christoph Egger

CHELSIO_T1_COUGAR doesn't exist in Kconfig, therefore removing all references for it from the source code.

---
 drivers/net/chelsio/subr.c |   48 +------------------------------------------
 1 files changed, 2 insertions(+), 46 deletions(-)
drivers/net/chelsio/subr.c +2 -46
index 53bde15..8ff621e 100644
@@ -185,9 +185,6 @@ static int t1_pci_intr_handler(adapter_t *adapter)
 	return 0;
 }
 
-#ifdef CONFIG_CHELSIO_T1_COUGAR
-#include "cspi.h"
-#endif
 #ifdef CONFIG_CHELSIO_T1_1G
 #include "fpga_defs.h"
 
@@ -280,7 +277,7 @@ static void mi1_mdio_init(adapter_t *adapter, const struct board_info *bi)
 	t1_tpi_write(adapter, A_ELMER0_PORT0_MI1_CFG, val);
 }
 
-#if defined(CONFIG_CHELSIO_T1_1G) || defined(CONFIG_CHELSIO_T1_COUGAR)
+#if defined(CONFIG_CHELSIO_T1_1G)
 /*
  * Elmer MI1 MDIO read/write operations.
  */
@@ -317,7 +314,7 @@ static int mi1_mdio_write(struct net_device *dev, int phy_addr, int mmd_addr,
 	return 0;
 }
 
-#if defined(CONFIG_CHELSIO_T1_1G) || defined(CONFIG_CHELSIO_T1_COUGAR)
+#if defined(CONFIG_CHELSIO_T1_1G)
 static const struct mdio_ops mi1_mdio_ops = {
 	.init = mi1_mdio_init,
 	.read = mi1_mdio_read,
@@ -752,31 +749,6 @@ int t1_elmer0_ext_intr_handler(adapter_t *adapter)
 					 mod_detect ? "removed" : "inserted");
 		}
 		break;
-#ifdef CONFIG_CHELSIO_T1_COUGAR
-	case CHBT_BOARD_COUGAR:
-		if (adapter->params.nports == 1) {
-			if (cause & ELMER0_GP_BIT1) {         /* Vitesse MAC */
-				struct cmac *mac = adapter->port[0].mac;
-				mac->ops->interrupt_handler(mac);
-			}
-			if (cause & ELMER0_GP_BIT5) {     /* XPAK MOD_DETECT */
-			}
-		} else {
-			int i, port_bit;
-
-			for_each_port(adapter, i) {
-				port_bit = i ? i + 1 : 0;
-				if (!(cause & (1 << port_bit)))
-					continue;
-
-				phy = adapter->port[i].phy;
-				phy_cause = phy->ops->interrupt_handler(phy);
-				if (phy_cause & cphy_cause_link_change)
-					t1_link_changed(adapter, i);
-			}
-		}
-		break;
-#endif
 	}
 	t1_tpi_write(adapter, A_ELMER0_INT_CAUSE, cause);
 	return 0;
@@ -1004,10 +976,6 @@ int t1_init_hw_modules(adapter_t *adapter)
 		       adapter->regs + A_MC5_CONFIG);
 	}
 
-#ifdef CONFIG_CHELSIO_T1_COUGAR
-	if (adapter->cspi && t1_cspi_init(adapter->cspi))
-		goto out_err;
-#endif
 	if (adapter->espi && t1_espi_init(adapter->espi, bi->chip_mac,
 					  bi->espi_nports))
 		goto out_err;
@@ -1061,10 +1029,6 @@ void t1_free_sw_modules(adapter_t *adapter)
 		t1_tp_destroy(adapter->tp);
 	if (adapter->espi)
 		t1_espi_destroy(adapter->espi);
-#ifdef CONFIG_CHELSIO_T1_COUGAR
-	if (adapter->cspi)
-		t1_cspi_destroy(adapter->cspi);
-#endif
 }
 
 static void __devinit init_link_config(struct link_config *lc,
@@ -1084,14 +1048,6 @@ static void __devinit init_link_config(struct link_config *lc,
 	}
 }
 
-#ifdef CONFIG_CHELSIO_T1_COUGAR
-	if (bi->clock_cspi && !(adapter->cspi = t1_cspi_create(adapter))) {
-		pr_err("%s: CSPI initialization failed\n",
-		       adapter->name);
-		goto error;
-	}
-#endif
-
 /*
  * Allocate and initialize the data structures that hold the SW state of
  * the Terminator HW modules.
Signature · 1 line
1.7.0.4
maintainer
#23 lore raw

Re: [PATCH 06/11] Removing dead CHELSIO_T1_COUGAR

From: Christoph Egger <[email protected]>
Date: Wed, 14 Jul 2010 14:41:04 +0200

Quoted 4 lines

CHELSIO_T1_COUGAR doesn't exist in Kconfig, therefore removing all references for it from the source code.

This has already been eliminated in the net-next-2.6 by other changes.

Thanks.

#24 lore raw

PATCH 7/11 Removing dead ARCH_PNX010X

In reply to Christoph Egger

ARCH_PNX010X doesn't exist in Kconfig, therefore removing all references for it from the source code.

---
 drivers/net/cs89x0.c |   45 ---------------------------------------------
 1 files changed, 0 insertions(+), 45 deletions(-)
drivers/net/cs89x0.c +0 -45
index 2ccb9f1..7a5d787 100644
@@ -180,12 +180,6 @@ static unsigned int cs8900_irq_map[] = {IRQ_IXDP2351_CS8900, 0, 0, 0};
 #elif defined(CONFIG_ARCH_IXDP2X01)
 static unsigned int netcard_portlist[] __used __initdata = {IXDP2X01_CS8900_VIRT_BASE, 0};
 static unsigned int cs8900_irq_map[] = {IRQ_IXDP2X01_CS8900, 0, 0, 0};
-#elif defined(CONFIG_ARCH_PNX010X)
-#include <mach/gpio.h>
-#define CIRRUS_DEFAULT_BASE	IO_ADDRESS(EXT_STATIC2_s0_BASE + 0x200000)	/* = Physical address 0x48200000 */
-#define CIRRUS_DEFAULT_IRQ	VH_INTC_INT_NUM_CASCADED_INTERRUPT_1 /* Event inputs bank 1 - ID 35/bit 3 */
-static unsigned int netcard_portlist[] __used __initdata = {CIRRUS_DEFAULT_BASE, 0};
-static unsigned int cs8900_irq_map[] = {CIRRUS_DEFAULT_IRQ, 0, 0, 0};
 #elif defined(CONFIG_MACH_MX31ADS)
 #include <mach/board-mx31ads.h>
 static unsigned int netcard_portlist[] __used __initdata = {
@@ -372,18 +366,6 @@ writeword(unsigned long base_addr, int portno, u16 value)
 {
 	__raw_writel(value, base_addr + (portno << 1));
 }
-#elif defined(CONFIG_ARCH_PNX010X)
-static u16
-readword(unsigned long base_addr, int portno)
-{
-	return inw(base_addr + (portno << 1));
-}
-
-static void
-writeword(unsigned long base_addr, int portno, u16 value)
-{
-	outw(value, base_addr + (portno << 1));
-}
 #else
 static u16
 readword(unsigned long base_addr, int portno)
@@ -546,30 +528,6 @@ cs89x0_probe1(struct net_device *dev, int ioaddr, int modular)
 #endif
         }
 
-#ifdef CONFIG_ARCH_PNX010X
-	initialize_ebi();
-
-	/* Map GPIO registers for the pins connected to the CS8900a. */
-	if (map_cirrus_gpio() < 0)
-		return -ENODEV;
-
-	reset_cirrus();
-
-	/* Map event-router registers. */
-	if (map_event_router() < 0)
-		return -ENODEV;
-
-	enable_cirrus_irq();
-
-	unmap_cirrus_gpio();
-	unmap_event_router();
-
-	dev->base_addr = ioaddr;
-
-	for (i = 0 ; i < 3 ; i++)
-		readreg(dev, 0);
-#endif
-
 	/* Grab the region so we can find another board if autoIRQ fails. */
 	/* WTF is going on here? */
 	if (!request_region(ioaddr & ~3, NETCARD_IO_EXTENT, DRV_NAME)) {
@@ -1391,9 +1349,6 @@ net_open(struct net_device *dev)
 	case A_CNF_MEDIA_10B_2: result = lp->adapter_cnf & A_CNF_10B_2; break;
         default: result = lp->adapter_cnf & (A_CNF_10B_T | A_CNF_AUI | A_CNF_10B_2);
         }
-#ifdef CONFIG_ARCH_PNX010X
-	result = A_CNF_10B_T;
-#endif
         if (!result) {
                 printk(KERN_ERR "%s: EEPROM is configured for unavailable media\n", dev->name);
 release_dma:
Signature · 1 line
1.7.0.4
#25 lore raw

PATCH 7/11 Removing dead ARCH_PNX010X

In reply to Christoph Egger

ARCH_PNX010X doesn't exist in Kconfig, therefore removing all references for it from the source code.

---
 drivers/net/cs89x0.c |   45 ---------------------------------------------
 1 files changed, 0 insertions(+), 45 deletions(-)
drivers/net/cs89x0.c +0 -45
index 2ccb9f1..7a5d787 100644
@@ -180,12 +180,6 @@ static unsigned int cs8900_irq_map[] = {IRQ_IXDP2351_CS8900, 0, 0, 0};
 #elif defined(CONFIG_ARCH_IXDP2X01)
 static unsigned int netcard_portlist[] __used __initdata = {IXDP2X01_CS8900_VIRT_BASE, 0};
 static unsigned int cs8900_irq_map[] = {IRQ_IXDP2X01_CS8900, 0, 0, 0};
-#elif defined(CONFIG_ARCH_PNX010X)
-#include <mach/gpio.h>
-#define CIRRUS_DEFAULT_BASE	IO_ADDRESS(EXT_STATIC2_s0_BASE + 0x200000)	/* = Physical address 0x48200000 */
-#define CIRRUS_DEFAULT_IRQ	VH_INTC_INT_NUM_CASCADED_INTERRUPT_1 /* Event inputs bank 1 - ID 35/bit 3 */
-static unsigned int netcard_portlist[] __used __initdata = {CIRRUS_DEFAULT_BASE, 0};
-static unsigned int cs8900_irq_map[] = {CIRRUS_DEFAULT_IRQ, 0, 0, 0};
 #elif defined(CONFIG_MACH_MX31ADS)
 #include <mach/board-mx31ads.h>
 static unsigned int netcard_portlist[] __used __initdata = {
@@ -372,18 +366,6 @@ writeword(unsigned long base_addr, int portno, u16 value)
 {
 	__raw_writel(value, base_addr + (portno << 1));
 }
-#elif defined(CONFIG_ARCH_PNX010X)
-static u16
-readword(unsigned long base_addr, int portno)
-{
-	return inw(base_addr + (portno << 1));
-}
-
-static void
-writeword(unsigned long base_addr, int portno, u16 value)
-{
-	outw(value, base_addr + (portno << 1));
-}
 #else
 static u16
 readword(unsigned long base_addr, int portno)
@@ -546,30 +528,6 @@ cs89x0_probe1(struct net_device *dev, int ioaddr, int modular)
 #endif
         }
 
-#ifdef CONFIG_ARCH_PNX010X
-	initialize_ebi();
-
-	/* Map GPIO registers for the pins connected to the CS8900a. */
-	if (map_cirrus_gpio() < 0)
-		return -ENODEV;
-
-	reset_cirrus();
-
-	/* Map event-router registers. */
-	if (map_event_router() < 0)
-		return -ENODEV;
-
-	enable_cirrus_irq();
-
-	unmap_cirrus_gpio();
-	unmap_event_router();
-
-	dev->base_addr = ioaddr;
-
-	for (i = 0 ; i < 3 ; i++)
-		readreg(dev, 0);
-#endif
-
 	/* Grab the region so we can find another board if autoIRQ fails. */
 	/* WTF is going on here? */
 	if (!request_region(ioaddr & ~3, NETCARD_IO_EXTENT, DRV_NAME)) {
@@ -1391,9 +1349,6 @@ net_open(struct net_device *dev)
 	case A_CNF_MEDIA_10B_2: result = lp->adapter_cnf & A_CNF_10B_2; break;
         default: result = lp->adapter_cnf & (A_CNF_10B_T | A_CNF_AUI | A_CNF_10B_2);
         }
-#ifdef CONFIG_ARCH_PNX010X
-	result = A_CNF_10B_T;
-#endif
         if (!result) {
                 printk(KERN_ERR "%s: EEPROM is configured for unavailable media\n", dev->name);
 release_dma:
Signature · 1 line
1.7.0.4
maintainer
#26 lore raw

Re: [PATCH 07/11] Removing dead ARCH_PNX010X

From: Christoph Egger <[email protected]>
Date: Wed, 14 Jul 2010 14:41:09 +0200

Quoted 4 lines

ARCH_PNX010X doesn't exist in Kconfig, therefore removing all references for it from the source code.

If you are going to kill this off, kill the references in driver/net/Kconfig at the same time.

Please fix this up and resubmit your patch, thanks.

#27 lore raw

Re: [PATCH 07/11] Removing dead ARCH_PNX010X

Quoted 6 lines · David Miller

From: Christoph Egger <[email protected]>
Date: Wed, 14 Jul 2010 14:41:09 +0200

Quoted 3 lines

ARCH_PNX010X doesn't exist in Kconfig, therefore removing all references for it from the source code.

Quoted 6 lines
Quoted 1 line

If you are going to kill this off, kill the references in driver/net/Kconfig at the same time.

Please fix this up and resubmit your patch, thanks.

DOne, patch below

Thanks

CHristoph

---

Quoted 1 line

From ed6ffbfd77e14f17fa7d75ddf70b0d3b0126848c Mon Sep 17 00:00:00 2001

From: Christoph Egger <[email protected]>
Date: Wed, 14 Jul 2010 14:19:15 +0200
Subject: [PATCH] Removing dead ARCH_PNX010X

ARCH_PNX010X doesn't exist in Kconfig, therefore removing all references for it from the source code/Kconfig.

---
 drivers/net/Kconfig  |    4 ++--
 drivers/net/cs89x0.c |   45 ---------------------------------------------
 2 files changed, 2 insertions(+), 47 deletions(-)
drivers/net/Kconfig +2 -2
index ce2fcdd..ba5b862 100644
@@ -1463,7 +1463,7 @@ config FORCEDETH
 config CS89x0
 	tristate "CS89x0 support"
 	depends on NET_ETHERNET && (ISA || EISA || MACH_IXDP2351 \
-		|| ARCH_IXDP2X01 || ARCH_PNX010X || MACH_MX31ADS)
+		|| ARCH_IXDP2X01 || MACH_MX31ADS)
 	---help---
 	  Support for CS89x0 chipset based Ethernet cards. If you have a
 	  network (Ethernet) card of this type, say Y and read the
@@ -1477,7 +1477,7 @@ config CS89x0
 config CS89x0_NONISA_IRQ
 	def_bool y
 	depends on CS89x0 != n
-	depends on MACH_IXDP2351 || ARCH_IXDP2X01 || ARCH_PNX010X || MACH_MX31ADS
+	depends on MACH_IXDP2351 || ARCH_IXDP2X01 || MACH_MX31ADS
 
 config TC35815
 	tristate "TOSHIBA TC35815 Ethernet support"
drivers/net/cs89x0.c +0 -45

69 lines not on this page · raw message

Signature · 1 line
1.7.0.4
#28 lore raw

PATCH 8/11 Removing dead SH_HICOSH4

In reply to Christoph Egger

SH_HICOSH4 doesn't exist in Kconfig, therefore removing all references for it from the source code.

---
 drivers/net/cs89x0.c |   51 +------------------------------------------------
 drivers/net/cs89x0.h |    4 ---
 2 files changed, 2 insertions(+), 53 deletions(-)
drivers/net/cs89x0.c +2 -49
index 7a5d787..d1762fe 100644
@@ -170,11 +170,7 @@ static char version[] __initdata =
 /* The cs8900 has 4 IRQ pins, software selectable. cs8900_irq_map maps
    them to system IRQ numbers. This mapping is card specific and is set to
    the configuration of the Cirrus Eval board for this chip. */
-#if defined(CONFIG_SH_HICOSH4)
-static unsigned int netcard_portlist[] __used __initdata =
-   { 0x0300, 0};
-static unsigned int cs8900_irq_map[] = {1,0,0,0};
-#elif defined(CONFIG_MACH_IXDP2351)
+#if defined(CONFIG_MACH_IXDP2351)
 static unsigned int netcard_portlist[] __used __initdata = {IXDP2351_VIRT_CS8900_BASE, 0};
 static unsigned int cs8900_irq_map[] = {IRQ_IXDP2351_CS8900, 0, 0, 0};
 #elif defined(CONFIG_ARCH_IXDP2X01)
@@ -537,12 +533,6 @@ cs89x0_probe1(struct net_device *dev, int ioaddr, int modular)
 		goto out1;
 	}
 
-#ifdef CONFIG_SH_HICOSH4
-	/* truly reset the chip */
-	writeword(ioaddr, ADD_PORT, 0x0114);
-	writeword(ioaddr, DATA_PORT, 0x0040);
-#endif
-
 	/* if they give us an odd I/O address, then do ONE write to
            the address port, to get it back to address zero, where we
            expect to find the EISA signature word. An IO with a base of 0x3
@@ -608,37 +598,6 @@ cs89x0_probe1(struct net_device *dev, int ioaddr, int modular)
 	   the driver will always do *something* instead of complain that
 	   adapter_cnf is 0. */
 
-#ifdef CONFIG_SH_HICOSH4
-	if (1) {
-		/* For the HiCO.SH4 board, things are different: we don't
-		   have EEPROM, but there is some data in flash, so we go
-		   get it there directly (MAC). */
-		__u16 *confd;
-		short cnt;
-		if (((* (volatile __u32 *) 0xa0013ff0) & 0x00ffffff)
-			== 0x006c3000) {
-			confd = (__u16*) 0xa0013fc0;
-		} else {
-			confd = (__u16*) 0xa001ffc0;
-		}
-		cnt = (*confd++ & 0x00ff) >> 1;
-		while (--cnt > 0) {
-			__u16 j = *confd++;
-
-			switch (j & 0x0fff) {
-			case PP_IA:
-				for (i = 0; i < ETH_ALEN/2; i++) {
-					dev->dev_addr[i*2] = confd[i] & 0xFF;
-					dev->dev_addr[i*2+1] = confd[i] >> 8;
-				}
-				break;
-			}
-			j = (j >> 12) + 1;
-			confd += j;
-			cnt -= j;
-		}
-	} else
-#endif
 
         if ((readreg(dev, PP_SelfST) & (EEPROM_OK | EEPROM_PRESENT)) ==
 	      (EEPROM_OK|EEPROM_PRESENT)) {
@@ -693,11 +652,7 @@ cs89x0_probe1(struct net_device *dev, int ioaddr, int modular)
         printk("\n");
 
 	/* First check to see if an EEPROM is attached. */
-#ifdef CONFIG_SH_HICOSH4 /* no EEPROM on HiCO, don't hazzle with it here */
-	if (1) {
-		printk(KERN_NOTICE "cs89x0: No EEPROM on HiCO.SH4\n");
-	} else
-#endif
+
 	if ((readreg(dev, PP_SelfST) & EEPROM_PRESENT) == 0)
 		printk(KERN_WARNING "cs89x0: No EEPROM, relying on command line....\n");
 	else if (get_eeprom_data(dev, START_EEPROM_DATA,CHKSUM_LEN,eeprom_buff) < 0) {
@@ -1234,7 +1189,6 @@ net_open(struct net_device *dev)
 	int i;
 	int ret;
 
-#if !defined(CONFIG_SH_HICOSH4) && !defined(CONFIG_ARCH_PNX010X) /* uses irq#1, so this won't work */
 	if (dev->irq < 2) {
 		/* Allow interrupts to be generated by the chip */
 /* Cirrus' release had this: */
@@ -1263,7 +1217,6 @@ net_open(struct net_device *dev)
 		}
 	}
 	else
-#endif
 	{
 #ifndef CONFIG_CS89x0_NONISA_IRQ
 		if (((1 << dev->irq) & lp->irq_map) == 0) {
drivers/net/cs89x0.h +0 -4
index 204ed37..91423b7 100644
@@ -437,11 +437,7 @@
 #define IRQ_MAP_EEPROM_DATA 0x0046 /*  Offset into eeprom for the IRQ map */
 #define IRQ_MAP_LEN 0x0004 /*  No of bytes to read for the IRQ map */
 #define PNP_IRQ_FRMT 0x0022 /*  PNP small item IRQ format */
-#ifdef CONFIG_SH_HICOSH4
-#define CS8900_IRQ_MAP 0x0002 /* HiCO-SH4 board has its IRQ on #1 */
-#else
 #define CS8900_IRQ_MAP 0x1c20 /*  This IRQ map is fixed */
-#endif
 
 #define CS8920_NO_INTS 0x0F   /*  Max CS8920 interrupt select # */
 
Signature · 1 line
1.7.0.4
#29 lore raw

PATCH 8/11 Removing dead SH_HICOSH4

In reply to Christoph Egger

SH_HICOSH4 doesn't exist in Kconfig, therefore removing all references for it from the source code.

---
 drivers/net/cs89x0.c |   51 +------------------------------------------------
 drivers/net/cs89x0.h |    4 ---
 2 files changed, 2 insertions(+), 53 deletions(-)
drivers/net/cs89x0.c +2 -49
index 7a5d787..d1762fe 100644
@@ -170,11 +170,7 @@ static char version[] __initdata =
 /* The cs8900 has 4 IRQ pins, software selectable. cs8900_irq_map maps
    them to system IRQ numbers. This mapping is card specific and is set to
    the configuration of the Cirrus Eval board for this chip. */
-#if defined(CONFIG_SH_HICOSH4)
-static unsigned int netcard_portlist[] __used __initdata =
-   { 0x0300, 0};
-static unsigned int cs8900_irq_map[] = {1,0,0,0};
-#elif defined(CONFIG_MACH_IXDP2351)
+#if defined(CONFIG_MACH_IXDP2351)
 static unsigned int netcard_portlist[] __used __initdata = {IXDP2351_VIRT_CS8900_BASE, 0};
 static unsigned int cs8900_irq_map[] = {IRQ_IXDP2351_CS8900, 0, 0, 0};
 #elif defined(CONFIG_ARCH_IXDP2X01)
@@ -537,12 +533,6 @@ cs89x0_probe1(struct net_device *dev, int ioaddr, int modular)
 		goto out1;
 	}
 
-#ifdef CONFIG_SH_HICOSH4
-	/* truly reset the chip */
-	writeword(ioaddr, ADD_PORT, 0x0114);
-	writeword(ioaddr, DATA_PORT, 0x0040);
-#endif
-
 	/* if they give us an odd I/O address, then do ONE write to
            the address port, to get it back to address zero, where we
            expect to find the EISA signature word. An IO with a base of 0x3
@@ -608,37 +598,6 @@ cs89x0_probe1(struct net_device *dev, int ioaddr, int modular)
 	   the driver will always do *something* instead of complain that
 	   adapter_cnf is 0. */
 
-#ifdef CONFIG_SH_HICOSH4
-	if (1) {
-		/* For the HiCO.SH4 board, things are different: we don't
-		   have EEPROM, but there is some data in flash, so we go
-		   get it there directly (MAC). */
-		__u16 *confd;
-		short cnt;
-		if (((* (volatile __u32 *) 0xa0013ff0) & 0x00ffffff)
-			== 0x006c3000) {
-			confd = (__u16*) 0xa0013fc0;
-		} else {
-			confd = (__u16*) 0xa001ffc0;
-		}
-		cnt = (*confd++ & 0x00ff) >> 1;
-		while (--cnt > 0) {
-			__u16 j = *confd++;
-
-			switch (j & 0x0fff) {
-			case PP_IA:
-				for (i = 0; i < ETH_ALEN/2; i++) {
-					dev->dev_addr[i*2] = confd[i] & 0xFF;
-					dev->dev_addr[i*2+1] = confd[i] >> 8;
-				}
-				break;
-			}
-			j = (j >> 12) + 1;
-			confd += j;
-			cnt -= j;
-		}
-	} else
-#endif
 
         if ((readreg(dev, PP_SelfST) & (EEPROM_OK | EEPROM_PRESENT)) ==
 	      (EEPROM_OK|EEPROM_PRESENT)) {
@@ -693,11 +652,7 @@ cs89x0_probe1(struct net_device *dev, int ioaddr, int modular)
         printk("\n");
 
 	/* First check to see if an EEPROM is attached. */
-#ifdef CONFIG_SH_HICOSH4 /* no EEPROM on HiCO, don't hazzle with it here */
-	if (1) {
-		printk(KERN_NOTICE "cs89x0: No EEPROM on HiCO.SH4\n");
-	} else
-#endif
+
 	if ((readreg(dev, PP_SelfST) & EEPROM_PRESENT) == 0)
 		printk(KERN_WARNING "cs89x0: No EEPROM, relying on command line....\n");
 	else if (get_eeprom_data(dev, START_EEPROM_DATA,CHKSUM_LEN,eeprom_buff) < 0) {
@@ -1234,7 +1189,6 @@ net_open(struct net_device *dev)
 	int i;
 	int ret;
 
-#if !defined(CONFIG_SH_HICOSH4) && !defined(CONFIG_ARCH_PNX010X) /* uses irq#1, so this won't work */
 	if (dev->irq < 2) {
 		/* Allow interrupts to be generated by the chip */
 /* Cirrus' release had this: */
@@ -1263,7 +1217,6 @@ net_open(struct net_device *dev)
 		}
 	}
 	else
-#endif
 	{
 #ifndef CONFIG_CS89x0_NONISA_IRQ
 		if (((1 << dev->irq) & lp->irq_map) == 0) {
drivers/net/cs89x0.h +0 -4
index 204ed37..91423b7 100644
@@ -437,11 +437,7 @@
 #define IRQ_MAP_EEPROM_DATA 0x0046 /*  Offset into eeprom for the IRQ map */
 #define IRQ_MAP_LEN 0x0004 /*  No of bytes to read for the IRQ map */
 #define PNP_IRQ_FRMT 0x0022 /*  PNP small item IRQ format */
-#ifdef CONFIG_SH_HICOSH4
-#define CS8900_IRQ_MAP 0x0002 /* HiCO-SH4 board has its IRQ on #1 */
-#else
 #define CS8900_IRQ_MAP 0x1c20 /*  This IRQ map is fixed */
-#endif
 
 #define CS8920_NO_INTS 0x0F   /*  Max CS8920 interrupt select # */
 
Signature · 1 line
1.7.0.4
#31 lore raw

PATCH 9/11 Removing dead ETRAX_NETWORK_RED_ON_NO_CONNECTION

In reply to Christoph Egger

ETRAX_NETWORK_RED_ON_NO_CONNECTION doesn't exist in Kconfig, therefore removing all references for it from the source code.

---
 drivers/net/cris/eth_v10.c |    4 ----
 1 files changed, 0 insertions(+), 4 deletions(-)
drivers/net/cris/eth_v10.c +0 -4
index 7e00027..81475cc 100644
@@ -1702,11 +1702,7 @@ e100_set_network_leds(int active)
 
 	if (!current_speed) {
 		/* Make LED red, link is down */
-#if defined(CONFIG_ETRAX_NETWORK_RED_ON_NO_CONNECTION)
-		CRIS_LED_NETWORK_SET(CRIS_LED_RED);
-#else
 		CRIS_LED_NETWORK_SET(CRIS_LED_OFF);
-#endif
 	} else if (light_leds) {
 		if (current_speed == 10) {
 			CRIS_LED_NETWORK_SET(CRIS_LED_ORANGE);
Signature · 1 line
1.7.0.4
#32 lore raw

PATCH 9/11 Removing dead ETRAX_NETWORK_RED_ON_NO_CONNECTION

In reply to Christoph Egger

ETRAX_NETWORK_RED_ON_NO_CONNECTION doesn't exist in Kconfig, therefore removing all references for it from the source code.

---
 drivers/net/cris/eth_v10.c |    4 ----
 1 files changed, 0 insertions(+), 4 deletions(-)
drivers/net/cris/eth_v10.c +0 -4
index 7e00027..81475cc 100644
@@ -1702,11 +1702,7 @@ e100_set_network_leds(int active)
 
 	if (!current_speed) {
 		/* Make LED red, link is down */
-#if defined(CONFIG_ETRAX_NETWORK_RED_ON_NO_CONNECTION)
-		CRIS_LED_NETWORK_SET(CRIS_LED_RED);
-#else
 		CRIS_LED_NETWORK_SET(CRIS_LED_OFF);
-#endif
 	} else if (light_leds) {
 		if (current_speed == 10) {
 			CRIS_LED_NETWORK_SET(CRIS_LED_ORANGE);
Signature · 1 line
1.7.0.4
maintainer Applied
#33 lore raw

Re: [PATCH 09/11] Removing dead ETRAX_NETWORK_RED_ON_NO_CONNECTION

From: Christoph Egger <[email protected]>
Date: Wed, 14 Jul 2010 14:41:20 +0200

Quoted 4 lines

ETRAX_NETWORK_RED_ON_NO_CONNECTION doesn't exist in Kconfig, therefore removing all references for it from the source code.

Applied.

#35 lore raw

PATCH 10/11 Removing dead NETWINDER_{T,R}X_DMA_PROBLEMS

In reply to Christoph Egger

NETWINDER_{T,R}X_DMA_PROBLEMS doesn't exist in Kconfig, therefore removing all references for it from the source code.

---
 drivers/net/irda/w83977af_ir.c |   33 ++++-----------------------------
 1 files changed, 4 insertions(+), 29 deletions(-)
drivers/net/irda/w83977af_ir.c +4 -29
index 1f9c3f0..05c6d79 100644
@@ -61,10 +61,6 @@
 #include "w83977af.h"
 #include "w83977af_ir.h"
 
-#ifdef  CONFIG_ARCH_NETWINDER            /* Adjust to NetWinder differences */
-#undef  CONFIG_NETWINDER_TX_DMA_PROBLEMS /* Not needed */
-#define CONFIG_NETWINDER_RX_DMA_PROBLEMS /* Must have this one! */
-#endif
 #define CONFIG_USE_W977_PNP        /* Currently needed */
 #define PIO_MAX_SPEED       115200 
 
@@ -565,11 +561,7 @@ static netdev_tx_t w83977af_hard_xmit(struct sk_buff *skb,
 static void w83977af_dma_write(struct w83977af_ir *self, int iobase)
 {
 	__u8 set;
-#ifdef CONFIG_NETWINDER_TX_DMA_PROBLEMS
-	unsigned long flags;
-	__u8 hcr;
-#endif
-        IRDA_DEBUG(4, "%s(), len=%d\n", __func__ , self->tx_buff.len);
+	IRDA_DEBUG(4, "%s(), len=%d\n", __func__ , self->tx_buff.len);
 
 	/* Save current set */
 	set = inb(iobase+SSR);
@@ -581,30 +573,13 @@ static void w83977af_dma_write(struct w83977af_ir *self, int iobase)
 	/* Choose transmit DMA channel  */ 
 	switch_bank(iobase, SET2);
 	outb(ADCR1_D_CHSW|/*ADCR1_DMA_F|*/ADCR1_ADV_SL, iobase+ADCR1);
-#ifdef CONFIG_NETWINDER_TX_DMA_PROBLEMS
-	spin_lock_irqsave(&self->lock, flags);
-
-	disable_dma(self->io.dma);
-	clear_dma_ff(self->io.dma);
-	set_dma_mode(self->io.dma, DMA_MODE_READ);
-	set_dma_addr(self->io.dma, self->tx_buff_dma);
-	set_dma_count(self->io.dma, self->tx_buff.len);
-#else
 	irda_setup_dma(self->io.dma, self->tx_buff_dma, self->tx_buff.len,
 		       DMA_MODE_WRITE);	
-#endif
 	self->io.direction = IO_XMIT;
 	
 	/* Enable DMA */
  	switch_bank(iobase, SET0);
-#ifdef CONFIG_NETWINDER_TX_DMA_PROBLEMS
-	hcr = inb(iobase+HCR);
-	outb(hcr | HCR_EN_DMA, iobase+HCR);
-	enable_dma(self->io.dma);
-	spin_unlock_irqrestore(&self->lock, flags);
-#else	
 	outb(inb(iobase+HCR) | HCR_EN_DMA | HCR_TX_WT, iobase+HCR);
-#endif
 
 	/* Restore set register */
 	outb(set, iobase+SSR);
@@ -713,7 +688,7 @@ static int w83977af_dma_receive(struct w83977af_ir *self)
 {
 	int iobase;
 	__u8 set;
-#ifdef CONFIG_NETWINDER_RX_DMA_PROBLEMS
+#ifdef CONFIG_ARCH_NETWINDER
 	unsigned long flags;
 	__u8 hcr;
 #endif
@@ -738,7 +713,7 @@ static int w83977af_dma_receive(struct w83977af_ir *self)
 	self->io.direction = IO_RECV;
 	self->rx_buff.data = self->rx_buff.head;
 
-#ifdef CONFIG_NETWINDER_RX_DMA_PROBLEMS
+#ifdef CONFIG_ARCH_NETWINDER
 	spin_lock_irqsave(&self->lock, flags);
 
 	disable_dma(self->io.dma);
@@ -761,7 +736,7 @@ static int w83977af_dma_receive(struct w83977af_ir *self)
 	
 	/* Enable DMA */
 	switch_bank(iobase, SET0);
-#ifdef CONFIG_NETWINDER_RX_DMA_PROBLEMS
+#ifdef CONFIG_ARCH_NETWINDER
 	hcr = inb(iobase+HCR);
 	outb(hcr | HCR_EN_DMA, iobase+HCR);
 	enable_dma(self->io.dma);
Signature · 1 line
1.7.0.4
maintainer
#36 lore raw

Re: [PATCH 10/11] Removing dead NETWINDER_{T,R}X_DMA_PROBLEMS

From: Christoph Egger <[email protected]>
Date: Wed, 14 Jul 2010 14:41:26 +0200

Quoted 4 lines

NETWINDER_{T,R}X_DMA_PROBLEMS doesn't exist in Kconfig, therefore removing all references for it from the source code.

It is getting set by hand in the driver, which is undesirable but you can't just kill this stuff off like this. You have to move the settings into the appropriate Kconfig location.

I'm not applying this patch.

#37 lore raw

PATCH 11/11 Removing dead REDWOOD_{5,6}

In reply to Christoph Egger

REDWOOD_{5,6} doesn't exist in Kconfig, therefore removing all references for it from the source code.

---
 drivers/net/smc91x.h |   37 -------------------------------------
 1 files changed, 0 insertions(+), 37 deletions(-)
drivers/net/smc91x.h +0 -37
index 8d2772c..ee74791 100644
@@ -83,43 +83,6 @@ static inline void SMC_outw(u16 val, void __iomem *ioaddr, int reg)
 	}
 }
 
-#elif defined(CONFIG_REDWOOD_5) || defined(CONFIG_REDWOOD_6)
-
-/* We can only do 16-bit reads and writes in the static memory space. */
-#define SMC_CAN_USE_8BIT	0
-#define SMC_CAN_USE_16BIT	1
-#define SMC_CAN_USE_32BIT	0
-#define SMC_NOWAIT		1
-
-#define SMC_IO_SHIFT		0
-
-#define SMC_inw(a, r)		in_be16((volatile u16 *)((a) + (r)))
-#define SMC_outw(v, a, r)	out_be16((volatile u16 *)((a) + (r)), v)
-#define SMC_insw(a, r, p, l) 						\
-	do {								\
-		unsigned long __port = (a) + (r);			\
-		u16 *__p = (u16 *)(p);					\
-		int __l = (l);						\
-		insw(__port, __p, __l);					\
-		while (__l > 0) {					\
-			*__p = swab16(*__p);				\
-			__p++;						\
-			__l--;						\
-		}							\
-	} while (0)
-#define SMC_outsw(a, r, p, l) 						\
-	do {								\
-		unsigned long __port = (a) + (r);			\
-		u16 *__p = (u16 *)(p);					\
-		int __l = (l);						\
-		while (__l > 0) {					\
-			/* Believe it or not, the swab isn't needed. */	\
-			outw( /* swab16 */ (*__p++), __port);		\
-			__l--;						\
-		}							\
-	} while (0)
-#define SMC_IRQ_FLAGS		(0)
-
 #elif defined(CONFIG_SA1100_PLEB)
 /* We can only do 16-bit reads and writes in the static memory space. */
 #define SMC_CAN_USE_8BIT	1
Signature · 1 line
1.7.0.4
#38 lore raw

PATCH 11/11 Removing dead REDWOOD_{5,6}

In reply to Christoph Egger

REDWOOD_{5,6} doesn't exist in Kconfig, therefore removing all references for it from the source code.

---
 drivers/net/smc91x.h |   37 -------------------------------------
 1 files changed, 0 insertions(+), 37 deletions(-)
drivers/net/smc91x.h +0 -37
index 8d2772c..ee74791 100644
@@ -83,43 +83,6 @@ static inline void SMC_outw(u16 val, void __iomem *ioaddr, int reg)
 	}
 }
 
-#elif defined(CONFIG_REDWOOD_5) || defined(CONFIG_REDWOOD_6)
-
-/* We can only do 16-bit reads and writes in the static memory space. */
-#define SMC_CAN_USE_8BIT	0
-#define SMC_CAN_USE_16BIT	1
-#define SMC_CAN_USE_32BIT	0
-#define SMC_NOWAIT		1
-
-#define SMC_IO_SHIFT		0
-
-#define SMC_inw(a, r)		in_be16((volatile u16 *)((a) + (r)))
-#define SMC_outw(v, a, r)	out_be16((volatile u16 *)((a) + (r)), v)
-#define SMC_insw(a, r, p, l) 						\
-	do {								\
-		unsigned long __port = (a) + (r);			\
-		u16 *__p = (u16 *)(p);					\
-		int __l = (l);						\
-		insw(__port, __p, __l);					\
-		while (__l > 0) {					\
-			*__p = swab16(*__p);				\
-			__p++;						\
-			__l--;						\
-		}							\
-	} while (0)
-#define SMC_outsw(a, r, p, l) 						\
-	do {								\
-		unsigned long __port = (a) + (r);			\
-		u16 *__p = (u16 *)(p);					\
-		int __l = (l);						\
-		while (__l > 0) {					\
-			/* Believe it or not, the swab isn't needed. */	\
-			outw( /* swab16 */ (*__p++), __port);		\
-			__l--;						\
-		}							\
-	} while (0)
-#define SMC_IRQ_FLAGS		(0)
-
 #elif defined(CONFIG_SA1100_PLEB)
 /* We can only do 16-bit reads and writes in the static memory space. */
 #define SMC_CAN_USE_8BIT	1
Signature · 1 line
1.7.0.4
Acked-by on v1 11/11
#39 lore raw

Re: [PATCH 11/11] Removing dead REDWOOD_{5,6}

Quoted 4 lines · Christoph Egger

REDWOOD_{5,6} doesn't exist in Kconfig, therefore removing all references for it from the source code.

Quoted 61 lines
---
 drivers/net/smc91x.h |   37 -------------------------------------
 1 files changed, 0 insertions(+), 37 deletions(-)
drivers/net/smc91x.h +0 -37
index 8d2772c..ee74791 100644
@@ -83,43 +83,6 @@ static inline void SMC_outw(u16 val, void __iomem *ioaddr, int reg)
 	}
 }
 
-#elif defined(CONFIG_REDWOOD_5) || defined(CONFIG_REDWOOD_6)
-
-/* We can only do 16-bit reads and writes in the static memory space. */
-#define SMC_CAN_USE_8BIT	0
-#define SMC_CAN_USE_16BIT	1
-#define SMC_CAN_USE_32BIT	0
-#define SMC_NOWAIT		1
-
-#define SMC_IO_SHIFT		0
-
-#define SMC_inw(a, r)		in_be16((volatile u16 *)((a) + (r)))
-#define SMC_outw(v, a, r)	out_be16((volatile u16 *)((a) + (r)), v)
-#define SMC_insw(a, r, p, l) 						\
-	do {								\
-		unsigned long __port = (a) + (r);			\
-		u16 *__p = (u16 *)(p);					\
-		int __l = (l);						\
-		insw(__port, __p, __l);					\
-		while (__l > 0) {					\
-			*__p = swab16(*__p);				\
-			__p++;						\
-			__l--;						\
-		}							\
-	} while (0)
-#define SMC_outsw(a, r, p, l) 						\
-	do {								\
-		unsigned long __port = (a) + (r);			\
-		u16 *__p = (u16 *)(p);					\
-		int __l = (l);						\
-		while (__l > 0) {					\
-			/* Believe it or not, the swab isn't needed. */	\
-			outw( /* swab16 */ (*__p++), __port);		\
-			__l--;						\
-		}							\
-	} while (0)
-#define SMC_IRQ_FLAGS		(0)
-
 #elif defined(CONFIG_SA1100_PLEB)
 /* We can only do 16-bit reads and writes in the static memory space. */
 #define SMC_CAN_USE_8BIT	1
Signature · 7 lines
1.7.0.4

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/
maintainer
#40 lore raw

Re: [PATCH 11/11] Removing dead REDWOOD_{5,6}

In reply to Christoph Egger

From: Christoph Egger <[email protected]>
Date: Wed, 14 Jul 2010 14:41:31 +0200

Quoted 4 lines

REDWOOD_{5,6} doesn't exist in Kconfig, therefore removing all references for it from the source code.

Again, if you're going to kill this off you should also delete the references in drivers/net/Kconfig at the same time.

Please fix this up and resubmit your patch, thanks.