Re: [2.6 patch] kill include/linux/eeprom.h

2005-02-17 Thread Adrian Bunk
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

2005-02-17 Thread Nick Winlund
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

2005-02-17 Thread Jeff Garzik
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

2005-02-17 Thread Adrian Bunk
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

2005-02-17 Thread Adrian Bunk
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

2005-02-17 Thread Jeff Garzik
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

2005-02-17 Thread Nick Winlund
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

2005-02-17 Thread Adrian Bunk
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/