Re: [2.6 patch] kill include/linux/eeprom.h
On Thu, Feb 17, 2005 at 01:36:09PM -0500, Jeff Garzik wrote: > Adrian Bunk wrote: > >This patch kills include/linux/eeprom.h . > > > >Rationale: > >- it's only used by one single driver > >- most of this file are non-inline and non-static functions (sic) > > > >This patch moves all required contents of this file into ns83820.c and > >removes include/linux/eeprom.h (and makes setup_ee_mem_bitbanger > >static). > > > >Signed-off-by: Adrian Bunk <[EMAIL PROTECTED]> > > I would rather update other drivers to use it :) You mean you want to: - move the code from the header file to a .c file - implement the write method that is currently empty - add uses of the eeprom code (note that even ns83820.c used only one of the 7 functions in eeprom.h). Noone did any of these during the more than 3 years eeprom.h already exists... > Jeff cu Adrian -- "Is there not promise of rain?" Ling Tan asked suddenly out of the darkness. There had been need of rain for many days. "Only a promise," Lao Er said. Pearl S. Buck - Dragon Seed - 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/
Re: [2.6 patch] kill include/linux/eeprom.h
I agree eeprom is memory technology at the least there should be secondary links for a static or symlinked file that leaves PCI/AT boot devices, future PLOS open to development. Nick I would rather update other drivers to use it :) Jeff - To unsubscribe from this list: send the line "unsubscribe linux-net" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html - 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/
Re: [2.6 patch] kill include/linux/eeprom.h
Adrian Bunk wrote: This patch kills include/linux/eeprom.h . Rationale: - it's only used by one single driver - most of this file are non-inline and non-static functions (sic) This patch moves all required contents of this file into ns83820.c and removes include/linux/eeprom.h (and makes setup_ee_mem_bitbanger static). Signed-off-by: Adrian Bunk <[EMAIL PROTECTED]> I would rather update other drivers to use it :) Jeff - 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/
[2.6 patch] kill include/linux/eeprom.h
This patch kills include/linux/eeprom.h . Rationale: - it's only used by one single driver - most of this file are non-inline and non-static functions (sic) This patch moves all required contents of this file into ns83820.c and removes include/linux/eeprom.h (and makes setup_ee_mem_bitbanger static). Signed-off-by: Adrian Bunk <[EMAIL PROTECTED]> --- drivers/net/ns83820.c | 49 +- include/linux/eeprom.h | 136 - 2 files changed, 44 insertions(+), 141 deletions(-) --- linux-2.6.11-rc3-mm2-full/include/linux/eeprom.h2004-12-24 22:33:49.0 +0100 +++ /dev/null 2004-11-25 03:16:25.0 +0100 @@ -1,136 +0,0 @@ -/* credit winbond-840.c - */ -#include -struct eeprom_ops { - void(*set_cs)(void *ee); - void(*clear_cs)(void *ee); -}; - -#define EEPOL_EEDI 0x01 -#define EEPOL_EEDO 0x02 -#define EEPOL_EECLK0x04 -#define EEPOL_EESEL0x08 - -struct eeprom { - void *dev; - struct eeprom_ops *ops; - - void __iomem * addr; - - unsignedee_addr_bits; - - unsignedeesel; - unsignedeeclk; - unsignedeedo; - unsignedeedi; - unsignedpolarity; - unsignedee_state; - - spinlock_t *lock; - u32 *cache; -}; - - -u8 eeprom_readb(struct eeprom *ee, unsigned address); -void eeprom_read(struct eeprom *ee, unsigned address, u8 *bytes, - unsigned count); -void eeprom_writeb(struct eeprom *ee, unsigned address, u8 data); -void eeprom_write(struct eeprom *ee, unsigned address, u8 *bytes, - unsigned count); - -/* The EEPROM commands include the alway-set leading bit. */ -enum EEPROM_Cmds { -EE_WriteCmd=(5 << 6), EE_ReadCmd=(6 << 6), EE_EraseCmd=(7 << 6), -}; - -void setup_ee_mem_bitbanger(struct eeprom *ee, void __iomem *memaddr, int eesel_bit, int eeclk_bit, int eedo_bit, int eedi_bit, unsigned polarity) -{ - ee->addr = memaddr; - ee->eesel = 1 << eesel_bit; - ee->eeclk = 1 << eeclk_bit; - ee->eedo = 1 << eedo_bit; - ee->eedi = 1 << eedi_bit; - - ee->polarity = polarity; - - *ee->cache = readl(ee->addr); -} - -/* foo. put this in a .c file */ -static inline void eeprom_update(struct eeprom *ee, u32 mask, int pol) -{ - unsigned long flags; - u32 data; - - spin_lock_irqsave(ee->lock, flags); - data = *ee->cache; - - data &= ~mask; - if (pol) - data |= mask; - - *ee->cache = data; -//printk("update: %08x\n", data); - writel(data, ee->addr); - spin_unlock_irqrestore(ee->lock, flags); -} - -void eeprom_clk_lo(struct eeprom *ee) -{ - int pol = !!(ee->polarity & EEPOL_EECLK); - - eeprom_update(ee, ee->eeclk, pol); - udelay(2); -} - -void eeprom_clk_hi(struct eeprom *ee) -{ - int pol = !!(ee->polarity & EEPOL_EECLK); - - eeprom_update(ee, ee->eeclk, !pol); - udelay(2); -} - -void eeprom_send_addr(struct eeprom *ee, unsigned address) -{ - int pol = !!(ee->polarity & EEPOL_EEDI); - unsigned i; - address |= 6 << 6; - -/* Shift the read command bits out. */ -for (i=0; i<11; i++) { - eeprom_update(ee, ee->eedi, ((address >> 10) & 1) ^ pol); - address <<= 1; - eeprom_clk_hi(ee); - eeprom_clk_lo(ee); -} - eeprom_update(ee, ee->eedi, pol); -} - -u16 eeprom_readw(struct eeprom *ee, unsigned address) -{ - unsigned i; - u16 res = 0; - - eeprom_clk_lo(ee); - eeprom_update(ee, ee->eesel, 1 ^ !!(ee->polarity & EEPOL_EESEL)); - eeprom_send_addr(ee, address); - - for (i=0; i<16; i++) { - u32 data; - eeprom_clk_hi(ee); - res <<= 1; - data = readl(ee->addr); -//printk("eeprom_readw: %08x\n", data); - res |= !!(data & ee->eedo) ^ !!(ee->polarity & EEPOL_EEDO); - eeprom_clk_lo(ee); - } - eeprom_update(ee, ee->eesel, 0 ^ !!(ee->polarity & EEPOL_EESEL)); - - return res; -} - - -void eeprom_writeb(struct eeprom *ee, unsigned address, u8 data) -{ -} --- linux-2.6.11-rc3-mm2-full/drivers/net/ns83820.c.old 2005-02-16 17:52:43.0 +0100 +++ linux-2.6.11-rc3-mm2-full/drivers/net/ns83820.c 2005-02-16 18:05:26.0 +0100 @@ -107,7 +107,6 @@ #include #include /* for iph */ #include /* for IPPROTO_... */ -#include #include #include #include @@ -422,6 +421,35 @@ #define DESC_SIZE 8 /* Should be cache line sized */ +struct eeprom_ops { + void(*set_cs)(void *ee); + void(*clear_cs)(void *ee); +}; + +#define EEPOL_EEDI 0x01 +#define EEPOL_EEDO 0x02 +#define EEPOL_EECLK0x04 +#define EEPOL_EESEL0x08 + +struct eeprom { + void *dev; + struct eeprom_ops *ops; + + void __iomem * addr; + +
[2.6 patch] kill include/linux/eeprom.h
This patch kills include/linux/eeprom.h . Rationale: - it's only used by one single driver - most of this file are non-inline and non-static functions (sic) This patch moves all required contents of this file into ns83820.c and removes include/linux/eeprom.h (and makes setup_ee_mem_bitbanger static). Signed-off-by: Adrian Bunk [EMAIL PROTECTED] --- drivers/net/ns83820.c | 49 +- include/linux/eeprom.h | 136 - 2 files changed, 44 insertions(+), 141 deletions(-) --- linux-2.6.11-rc3-mm2-full/include/linux/eeprom.h2004-12-24 22:33:49.0 +0100 +++ /dev/null 2004-11-25 03:16:25.0 +0100 @@ -1,136 +0,0 @@ -/* credit winbond-840.c - */ -#include asm/io.h -struct eeprom_ops { - void(*set_cs)(void *ee); - void(*clear_cs)(void *ee); -}; - -#define EEPOL_EEDI 0x01 -#define EEPOL_EEDO 0x02 -#define EEPOL_EECLK0x04 -#define EEPOL_EESEL0x08 - -struct eeprom { - void *dev; - struct eeprom_ops *ops; - - void __iomem * addr; - - unsignedee_addr_bits; - - unsignedeesel; - unsignedeeclk; - unsignedeedo; - unsignedeedi; - unsignedpolarity; - unsignedee_state; - - spinlock_t *lock; - u32 *cache; -}; - - -u8 eeprom_readb(struct eeprom *ee, unsigned address); -void eeprom_read(struct eeprom *ee, unsigned address, u8 *bytes, - unsigned count); -void eeprom_writeb(struct eeprom *ee, unsigned address, u8 data); -void eeprom_write(struct eeprom *ee, unsigned address, u8 *bytes, - unsigned count); - -/* The EEPROM commands include the alway-set leading bit. */ -enum EEPROM_Cmds { -EE_WriteCmd=(5 6), EE_ReadCmd=(6 6), EE_EraseCmd=(7 6), -}; - -void setup_ee_mem_bitbanger(struct eeprom *ee, void __iomem *memaddr, int eesel_bit, int eeclk_bit, int eedo_bit, int eedi_bit, unsigned polarity) -{ - ee-addr = memaddr; - ee-eesel = 1 eesel_bit; - ee-eeclk = 1 eeclk_bit; - ee-eedo = 1 eedo_bit; - ee-eedi = 1 eedi_bit; - - ee-polarity = polarity; - - *ee-cache = readl(ee-addr); -} - -/* foo. put this in a .c file */ -static inline void eeprom_update(struct eeprom *ee, u32 mask, int pol) -{ - unsigned long flags; - u32 data; - - spin_lock_irqsave(ee-lock, flags); - data = *ee-cache; - - data = ~mask; - if (pol) - data |= mask; - - *ee-cache = data; -//printk(update: %08x\n, data); - writel(data, ee-addr); - spin_unlock_irqrestore(ee-lock, flags); -} - -void eeprom_clk_lo(struct eeprom *ee) -{ - int pol = !!(ee-polarity EEPOL_EECLK); - - eeprom_update(ee, ee-eeclk, pol); - udelay(2); -} - -void eeprom_clk_hi(struct eeprom *ee) -{ - int pol = !!(ee-polarity EEPOL_EECLK); - - eeprom_update(ee, ee-eeclk, !pol); - udelay(2); -} - -void eeprom_send_addr(struct eeprom *ee, unsigned address) -{ - int pol = !!(ee-polarity EEPOL_EEDI); - unsigned i; - address |= 6 6; - -/* Shift the read command bits out. */ -for (i=0; i11; i++) { - eeprom_update(ee, ee-eedi, ((address 10) 1) ^ pol); - address = 1; - eeprom_clk_hi(ee); - eeprom_clk_lo(ee); -} - eeprom_update(ee, ee-eedi, pol); -} - -u16 eeprom_readw(struct eeprom *ee, unsigned address) -{ - unsigned i; - u16 res = 0; - - eeprom_clk_lo(ee); - eeprom_update(ee, ee-eesel, 1 ^ !!(ee-polarity EEPOL_EESEL)); - eeprom_send_addr(ee, address); - - for (i=0; i16; i++) { - u32 data; - eeprom_clk_hi(ee); - res = 1; - data = readl(ee-addr); -//printk(eeprom_readw: %08x\n, data); - res |= !!(data ee-eedo) ^ !!(ee-polarity EEPOL_EEDO); - eeprom_clk_lo(ee); - } - eeprom_update(ee, ee-eesel, 0 ^ !!(ee-polarity EEPOL_EESEL)); - - return res; -} - - -void eeprom_writeb(struct eeprom *ee, unsigned address, u8 data) -{ -} --- linux-2.6.11-rc3-mm2-full/drivers/net/ns83820.c.old 2005-02-16 17:52:43.0 +0100 +++ linux-2.6.11-rc3-mm2-full/drivers/net/ns83820.c 2005-02-16 18:05:26.0 +0100 @@ -107,7 +107,6 @@ #include linux/init.h #include linux/ip.h /* for iph */ #include linux/in.h /* for IPPROTO_... */ -#include linux/eeprom.h #include linux/compiler.h #include linux/prefetch.h #include linux/ethtool.h @@ -422,6 +421,35 @@ #define DESC_SIZE 8 /* Should be cache line sized */ +struct eeprom_ops { + void(*set_cs)(void *ee); + void(*clear_cs)(void *ee); +}; + +#define EEPOL_EEDI 0x01 +#define EEPOL_EEDO 0x02 +#define EEPOL_EECLK0x04 +#define EEPOL_EESEL0x08 + +struct eeprom { + void *dev; + struct eeprom_ops *ops; + +
Re: [2.6 patch] kill include/linux/eeprom.h
Adrian Bunk wrote: This patch kills include/linux/eeprom.h . Rationale: - it's only used by one single driver - most of this file are non-inline and non-static functions (sic) This patch moves all required contents of this file into ns83820.c and removes include/linux/eeprom.h (and makes setup_ee_mem_bitbanger static). Signed-off-by: Adrian Bunk [EMAIL PROTECTED] I would rather update other drivers to use it :) Jeff - 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/
Re: [2.6 patch] kill include/linux/eeprom.h
I agree eeprom is memory technology at the least there should be secondary links for a static or symlinked file that leaves PCI/AT boot devices, future PLOS open to development. Nick I would rather update other drivers to use it :) Jeff - To unsubscribe from this list: send the line unsubscribe linux-net in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html - 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/
Re: [2.6 patch] kill include/linux/eeprom.h
On Thu, Feb 17, 2005 at 01:36:09PM -0500, Jeff Garzik wrote: Adrian Bunk wrote: This patch kills include/linux/eeprom.h . Rationale: - it's only used by one single driver - most of this file are non-inline and non-static functions (sic) This patch moves all required contents of this file into ns83820.c and removes include/linux/eeprom.h (and makes setup_ee_mem_bitbanger static). Signed-off-by: Adrian Bunk [EMAIL PROTECTED] I would rather update other drivers to use it :) You mean you want to: - move the code from the header file to a .c file - implement the write method that is currently empty - add uses of the eeprom code (note that even ns83820.c used only one of the 7 functions in eeprom.h). Noone did any of these during the more than 3 years eeprom.h already exists... Jeff cu Adrian -- Is there not promise of rain? Ling Tan asked suddenly out of the darkness. There had been need of rain for many days. Only a promise, Lao Er said. Pearl S. Buck - Dragon Seed - 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/