Re: [PATCH v2] staging: sbe-2t3e3: Remove code that will never execute

2012-07-16 Thread Greg KH
On Thu, Jul 12, 2012 at 11:27:49PM -0300, Marcos Paulo de Souza wrote:
> This patch removes all references of "if 0" blocks in the sbe-2t3e3 driver.
> 
> Signed-off-by: Marcos Paulo de Souza 
> ---
>  drivers/staging/sbe-2t3e3/2t3e3.h|3 --
>  drivers/staging/sbe-2t3e3/cpld.c |   15 -
>  drivers/staging/sbe-2t3e3/ctrl.c |   19 +++
>  drivers/staging/sbe-2t3e3/dc.c   |   17 --
>  drivers/staging/sbe-2t3e3/exar7250.c |   40 +++
>  drivers/staging/sbe-2t3e3/exar7300.c |   17 --
>  drivers/staging/sbe-2t3e3/intr.c |   60 
> ++
>  drivers/staging/sbe-2t3e3/io.c   |   21 
>  8 files changed, 10 insertions(+), 182 deletions(-)
> 
> diff --git a/drivers/staging/sbe-2t3e3/2t3e3.h 
> b/drivers/staging/sbe-2t3e3/2t3e3.h
> index fe9f086..383f2cf 100644
> --- a/drivers/staging/sbe-2t3e3/2t3e3.h
> +++ b/drivers/staging/sbe-2t3e3/2t3e3.h
> 
> Just fix the commit message fo sbr-2t3e3 to sbe-2t3e3.
> 
> @@ -801,9 +801,6 @@ u32 cpld_read(struct channel *sc, u32 reg);

Woah, what is that line in the middle of the patch here?  That causes
git to (rightfully) choke on the patch.

Please fix this and resend.

thanks,

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v2] staging: sbe-2t3e3: Remove code that will never execute

2012-07-16 Thread Greg KH
On Thu, Jul 12, 2012 at 11:27:49PM -0300, Marcos Paulo de Souza wrote:
 This patch removes all references of if 0 blocks in the sbe-2t3e3 driver.
 
 Signed-off-by: Marcos Paulo de Souza marcos.souza@gmail.com
 ---
  drivers/staging/sbe-2t3e3/2t3e3.h|3 --
  drivers/staging/sbe-2t3e3/cpld.c |   15 -
  drivers/staging/sbe-2t3e3/ctrl.c |   19 +++
  drivers/staging/sbe-2t3e3/dc.c   |   17 --
  drivers/staging/sbe-2t3e3/exar7250.c |   40 +++
  drivers/staging/sbe-2t3e3/exar7300.c |   17 --
  drivers/staging/sbe-2t3e3/intr.c |   60 
 ++
  drivers/staging/sbe-2t3e3/io.c   |   21 
  8 files changed, 10 insertions(+), 182 deletions(-)
 
 diff --git a/drivers/staging/sbe-2t3e3/2t3e3.h 
 b/drivers/staging/sbe-2t3e3/2t3e3.h
 index fe9f086..383f2cf 100644
 --- a/drivers/staging/sbe-2t3e3/2t3e3.h
 +++ b/drivers/staging/sbe-2t3e3/2t3e3.h
 
 Just fix the commit message fo sbr-2t3e3 to sbe-2t3e3.
 
 @@ -801,9 +801,6 @@ u32 cpld_read(struct channel *sc, u32 reg);

Woah, what is that line in the middle of the patch here?  That causes
git to (rightfully) choke on the patch.

Please fix this and resend.

thanks,

greg k-h
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v2] staging: sbe-2t3e3: Remove code that will never execute

2012-07-13 Thread Marcos Souza
2012/7/13 Greg KH :
> On Thu, Jul 12, 2012 at 11:27:49PM -0300, Marcos Paulo de Souza wrote:
>> This patch removes all references of "if 0" blocks in the sbe-2t3e3 driver.
>>
>> Signed-off-by: Marcos Paulo de Souza 
>> ---
>>  drivers/staging/sbe-2t3e3/2t3e3.h|3 --
>>  drivers/staging/sbe-2t3e3/cpld.c |   15 -
>>  drivers/staging/sbe-2t3e3/ctrl.c |   19 +++
>>  drivers/staging/sbe-2t3e3/dc.c   |   17 --
>>  drivers/staging/sbe-2t3e3/exar7250.c |   40 +++
>>  drivers/staging/sbe-2t3e3/exar7300.c |   17 --
>>  drivers/staging/sbe-2t3e3/intr.c |   60 
>> ++
>>  drivers/staging/sbe-2t3e3/io.c   |   21 
>>  8 files changed, 10 insertions(+), 182 deletions(-)
>
> When sending out a v2 version of a patch (or any version after the
> first), please detail what changed between them.  The diffstat didn't
> look different here, but the patch did.  What happened?
>
> thanks,
>
> greg k-h

Hi greg,

I put some info between the commit message and the lines changed:

"Just fix the commit message fo sbr-2t3e3 to sbe-2t3e3"

So, looking at this now, I forgot to put a "Changes from v1" to
identify what was changed.

Thanks and sorry for that.

-- 
Att,

Marcos Paulo de Souza
Acadêmico de Ciencia da Computação - FURB - SC
"Uma vida sem desafios é uma vida sem razão"
"A life without challenges, is a non reason life"
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v2] staging: sbe-2t3e3: Remove code that will never execute

2012-07-13 Thread Greg KH
On Thu, Jul 12, 2012 at 11:27:49PM -0300, Marcos Paulo de Souza wrote:
> This patch removes all references of "if 0" blocks in the sbe-2t3e3 driver.
> 
> Signed-off-by: Marcos Paulo de Souza 
> ---
>  drivers/staging/sbe-2t3e3/2t3e3.h|3 --
>  drivers/staging/sbe-2t3e3/cpld.c |   15 -
>  drivers/staging/sbe-2t3e3/ctrl.c |   19 +++
>  drivers/staging/sbe-2t3e3/dc.c   |   17 --
>  drivers/staging/sbe-2t3e3/exar7250.c |   40 +++
>  drivers/staging/sbe-2t3e3/exar7300.c |   17 --
>  drivers/staging/sbe-2t3e3/intr.c |   60 
> ++
>  drivers/staging/sbe-2t3e3/io.c   |   21 
>  8 files changed, 10 insertions(+), 182 deletions(-)

When sending out a v2 version of a patch (or any version after the
first), please detail what changed between them.  The diffstat didn't
look different here, but the patch did.  What happened?

thanks,

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v2] staging: sbe-2t3e3: Remove code that will never execute

2012-07-13 Thread Greg KH
On Thu, Jul 12, 2012 at 11:27:49PM -0300, Marcos Paulo de Souza wrote:
 This patch removes all references of if 0 blocks in the sbe-2t3e3 driver.
 
 Signed-off-by: Marcos Paulo de Souza marcos.souza@gmail.com
 ---
  drivers/staging/sbe-2t3e3/2t3e3.h|3 --
  drivers/staging/sbe-2t3e3/cpld.c |   15 -
  drivers/staging/sbe-2t3e3/ctrl.c |   19 +++
  drivers/staging/sbe-2t3e3/dc.c   |   17 --
  drivers/staging/sbe-2t3e3/exar7250.c |   40 +++
  drivers/staging/sbe-2t3e3/exar7300.c |   17 --
  drivers/staging/sbe-2t3e3/intr.c |   60 
 ++
  drivers/staging/sbe-2t3e3/io.c   |   21 
  8 files changed, 10 insertions(+), 182 deletions(-)

When sending out a v2 version of a patch (or any version after the
first), please detail what changed between them.  The diffstat didn't
look different here, but the patch did.  What happened?

thanks,

greg k-h
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH v2] staging: sbe-2t3e3: Remove code that will never execute

2012-07-13 Thread Marcos Souza
2012/7/13 Greg KH gre...@linuxfoundation.org:
 On Thu, Jul 12, 2012 at 11:27:49PM -0300, Marcos Paulo de Souza wrote:
 This patch removes all references of if 0 blocks in the sbe-2t3e3 driver.

 Signed-off-by: Marcos Paulo de Souza marcos.souza@gmail.com
 ---
  drivers/staging/sbe-2t3e3/2t3e3.h|3 --
  drivers/staging/sbe-2t3e3/cpld.c |   15 -
  drivers/staging/sbe-2t3e3/ctrl.c |   19 +++
  drivers/staging/sbe-2t3e3/dc.c   |   17 --
  drivers/staging/sbe-2t3e3/exar7250.c |   40 +++
  drivers/staging/sbe-2t3e3/exar7300.c |   17 --
  drivers/staging/sbe-2t3e3/intr.c |   60 
 ++
  drivers/staging/sbe-2t3e3/io.c   |   21 
  8 files changed, 10 insertions(+), 182 deletions(-)

 When sending out a v2 version of a patch (or any version after the
 first), please detail what changed between them.  The diffstat didn't
 look different here, but the patch did.  What happened?

 thanks,

 greg k-h

Hi greg,

I put some info between the commit message and the lines changed:

Just fix the commit message fo sbr-2t3e3 to sbe-2t3e3

So, looking at this now, I forgot to put a Changes from v1 to
identify what was changed.

Thanks and sorry for that.

-- 
Att,

Marcos Paulo de Souza
Acadêmico de Ciencia da Computação - FURB - SC
Uma vida sem desafios é uma vida sem razão
A life without challenges, is a non reason life
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH v2] staging: sbe-2t3e3: Remove code that will never execute

2012-07-12 Thread Marcos Paulo de Souza
This patch removes all references of "if 0" blocks in the sbe-2t3e3 driver.

Signed-off-by: Marcos Paulo de Souza 
---
 drivers/staging/sbe-2t3e3/2t3e3.h|3 --
 drivers/staging/sbe-2t3e3/cpld.c |   15 -
 drivers/staging/sbe-2t3e3/ctrl.c |   19 +++
 drivers/staging/sbe-2t3e3/dc.c   |   17 --
 drivers/staging/sbe-2t3e3/exar7250.c |   40 +++
 drivers/staging/sbe-2t3e3/exar7300.c |   17 --
 drivers/staging/sbe-2t3e3/intr.c |   60 ++
 drivers/staging/sbe-2t3e3/io.c   |   21 
 8 files changed, 10 insertions(+), 182 deletions(-)

diff --git a/drivers/staging/sbe-2t3e3/2t3e3.h 
b/drivers/staging/sbe-2t3e3/2t3e3.h
index fe9f086..383f2cf 100644
--- a/drivers/staging/sbe-2t3e3/2t3e3.h
+++ b/drivers/staging/sbe-2t3e3/2t3e3.h

Just fix the commit message fo sbr-2t3e3 to sbe-2t3e3.

@@ -801,9 +801,6 @@ u32 cpld_read(struct channel *sc, u32 reg);
 void cpld_set_crc(struct channel *, u32);
 void cpld_start_intr(struct channel *);
 void cpld_stop_intr(struct channel *);
-#if 0
-void cpld_led_onoff(struct channel *, u32, u32, u32, u32);
-#endif
 void cpld_set_clock(struct channel *sc, u32 mode);
 void cpld_set_scrambler(struct channel *, u32);
 void cpld_select_panel(struct channel *, u32);
diff --git a/drivers/staging/sbe-2t3e3/cpld.c b/drivers/staging/sbe-2t3e3/cpld.c
index b0fc2dd..cc2b54d 100644
--- a/drivers/staging/sbe-2t3e3/cpld.c
+++ b/drivers/staging/sbe-2t3e3/cpld.c
@@ -41,14 +41,6 @@ static inline void cpld_clear_bit(struct channel *channel, 
unsigned reg, u32 bit
 void cpld_init(struct channel *sc)
 {
u32 val;
-#if 0
-   /* reset LIU and Framer */
-   val = cpld_val_map[SBE_2T3E3_CPLD_VAL_LIU_FRAMER_RESET][sc->h.slot];
-   cpld_write(sc, SBE_2T3E3_CPLD_REG_STATIC_RESET, val);
-   udelay(1); /* TODO - how long? */
-   val = 0;
-   cpld_write(sc, SBE_2T3E3_CPLD_REG_STATIC_RESET, val);
-#endif
 
/* PCRA */
val = SBE_2T3E3_CPLD_VAL_CRC32 |
@@ -109,13 +101,6 @@ void cpld_start_intr(struct channel *sc)
val = SBE_2T3E3_CPLD_VAL_INTERRUPT_FROM_ETHERNET_ENABLE |
SBE_2T3E3_CPLD_VAL_INTERRUPT_FROM_FRAMER_ENABLE;
cpld_write(sc, SBE_2T3E3_CPLD_REG_PIER, val);
-#if 0
-   /*
- do you want to hang up your computer?
- ENABLE REST OF INTERRUPTS !!!
- you have been warned :).
-   */
-#endif
 }
 
 void cpld_stop_intr(struct channel *sc)
diff --git a/drivers/staging/sbe-2t3e3/ctrl.c b/drivers/staging/sbe-2t3e3/ctrl.c
index d9dd216..a5825d7 100644
--- a/drivers/staging/sbe-2t3e3/ctrl.c
+++ b/drivers/staging/sbe-2t3e3/ctrl.c
@@ -230,11 +230,9 @@ void t3e3_port_get_stats(struct channel *sc,
result = exar7250_read(sc, 
SBE_2T3E3_FRAMER_REG_E3_RX_CONFIGURATION_STATUS_2);
sc->s.LOF = result & SBE_2T3E3_FRAMER_VAL_E3_RX_LOF ? 1 : 0;
sc->s.OOF = result & SBE_2T3E3_FRAMER_VAL_E3_RX_OOF ? 1 : 0;
-#if 0
-   sc->s.LOS = result & SBE_2T3E3_FRAMER_VAL_E3_RX_LOS ? 1 : 0;
-#else
+
cpld_LOS_update(sc);
-#endif
+
sc->s.AIS = result & SBE_2T3E3_FRAMER_VAL_E3_RX_AIS ? 1 : 0;
sc->s.FERF = result & SBE_2T3E3_FRAMER_VAL_E3_RX_FERF ? 1 : 0;
break;
@@ -243,11 +241,9 @@ void t3e3_port_get_stats(struct channel *sc,
case SBE_2T3E3_FRAME_TYPE_T3_M13:
result = exar7250_read(sc, 
SBE_2T3E3_FRAMER_REG_T3_RX_CONFIGURATION_STATUS);
sc->s.AIS = result & SBE_2T3E3_FRAMER_VAL_T3_RX_AIS ? 1 : 0;
-#if 0
-   sc->s.LOS = result & SBE_2T3E3_FRAMER_VAL_T3_RX_LOS ? 1 : 0;
-#else
+
cpld_LOS_update(sc);
-#endif
+
sc->s.IDLE = result & SBE_2T3E3_FRAMER_VAL_T3_RX_IDLE ? 1 : 0;
sc->s.OOF = result & SBE_2T3E3_FRAMER_VAL_T3_RX_OOF ? 1 : 0;
 
@@ -322,10 +318,6 @@ void t3e3_if_config(struct channel *sc, u32 cmd, char *set,
*rlen = sizeof(ret->u.data);
break;
case SBE_2T3E3_PORT_WRITE_REGS:
-#if 0
-   printk(KERN_DEBUG "SBE_2T3E3_PORT_WRITE_REGS, 0x%x, 0x%x, 
0x%x\n",
-  ((int*)data)[0], ((int*)data)[1], ((int*)data)[2]);
-#endif
t3e3_reg_write(sc, data);
*rlen = 0;
break;
@@ -336,9 +328,6 @@ void t3e3_if_config(struct channel *sc, u32 cmd, char *set,
*rlen = 0;
break;
}
-
-   /* turn on interrupt */
-   /* cpld_start_intr(sc); */
 }
 
 void t3e3_sc_init(struct channel *sc)
diff --git a/drivers/staging/sbe-2t3e3/dc.c b/drivers/staging/sbe-2t3e3/dc.c
index e897a43..9e81d90 100644
--- a/drivers/staging/sbe-2t3e3/dc.c
+++ b/drivers/staging/sbe-2t3e3/dc.c
@@ -63,14 +63,6 @@ void dc_init(struct channel *sc)
if (sc->p.loopback == SBE_2T3E3_LOOPBACK_ETHERNET)
sc->p.loopback = SBE_2T3E3_LOOPBACK_NONE;
 
-#if 0 /* No need to clear this register - and 

[PATCH v2] staging: sbe-2t3e3: Remove code that will never execute

2012-07-12 Thread Marcos Paulo de Souza
This patch removes all references of if 0 blocks in the sbe-2t3e3 driver.

Signed-off-by: Marcos Paulo de Souza marcos.souza@gmail.com
---
 drivers/staging/sbe-2t3e3/2t3e3.h|3 --
 drivers/staging/sbe-2t3e3/cpld.c |   15 -
 drivers/staging/sbe-2t3e3/ctrl.c |   19 +++
 drivers/staging/sbe-2t3e3/dc.c   |   17 --
 drivers/staging/sbe-2t3e3/exar7250.c |   40 +++
 drivers/staging/sbe-2t3e3/exar7300.c |   17 --
 drivers/staging/sbe-2t3e3/intr.c |   60 ++
 drivers/staging/sbe-2t3e3/io.c   |   21 
 8 files changed, 10 insertions(+), 182 deletions(-)

diff --git a/drivers/staging/sbe-2t3e3/2t3e3.h 
b/drivers/staging/sbe-2t3e3/2t3e3.h
index fe9f086..383f2cf 100644
--- a/drivers/staging/sbe-2t3e3/2t3e3.h
+++ b/drivers/staging/sbe-2t3e3/2t3e3.h

Just fix the commit message fo sbr-2t3e3 to sbe-2t3e3.

@@ -801,9 +801,6 @@ u32 cpld_read(struct channel *sc, u32 reg);
 void cpld_set_crc(struct channel *, u32);
 void cpld_start_intr(struct channel *);
 void cpld_stop_intr(struct channel *);
-#if 0
-void cpld_led_onoff(struct channel *, u32, u32, u32, u32);
-#endif
 void cpld_set_clock(struct channel *sc, u32 mode);
 void cpld_set_scrambler(struct channel *, u32);
 void cpld_select_panel(struct channel *, u32);
diff --git a/drivers/staging/sbe-2t3e3/cpld.c b/drivers/staging/sbe-2t3e3/cpld.c
index b0fc2dd..cc2b54d 100644
--- a/drivers/staging/sbe-2t3e3/cpld.c
+++ b/drivers/staging/sbe-2t3e3/cpld.c
@@ -41,14 +41,6 @@ static inline void cpld_clear_bit(struct channel *channel, 
unsigned reg, u32 bit
 void cpld_init(struct channel *sc)
 {
u32 val;
-#if 0
-   /* reset LIU and Framer */
-   val = cpld_val_map[SBE_2T3E3_CPLD_VAL_LIU_FRAMER_RESET][sc-h.slot];
-   cpld_write(sc, SBE_2T3E3_CPLD_REG_STATIC_RESET, val);
-   udelay(1); /* TODO - how long? */
-   val = 0;
-   cpld_write(sc, SBE_2T3E3_CPLD_REG_STATIC_RESET, val);
-#endif
 
/* PCRA */
val = SBE_2T3E3_CPLD_VAL_CRC32 |
@@ -109,13 +101,6 @@ void cpld_start_intr(struct channel *sc)
val = SBE_2T3E3_CPLD_VAL_INTERRUPT_FROM_ETHERNET_ENABLE |
SBE_2T3E3_CPLD_VAL_INTERRUPT_FROM_FRAMER_ENABLE;
cpld_write(sc, SBE_2T3E3_CPLD_REG_PIER, val);
-#if 0
-   /*
- do you want to hang up your computer?
- ENABLE REST OF INTERRUPTS !!!
- you have been warned :).
-   */
-#endif
 }
 
 void cpld_stop_intr(struct channel *sc)
diff --git a/drivers/staging/sbe-2t3e3/ctrl.c b/drivers/staging/sbe-2t3e3/ctrl.c
index d9dd216..a5825d7 100644
--- a/drivers/staging/sbe-2t3e3/ctrl.c
+++ b/drivers/staging/sbe-2t3e3/ctrl.c
@@ -230,11 +230,9 @@ void t3e3_port_get_stats(struct channel *sc,
result = exar7250_read(sc, 
SBE_2T3E3_FRAMER_REG_E3_RX_CONFIGURATION_STATUS_2);
sc-s.LOF = result  SBE_2T3E3_FRAMER_VAL_E3_RX_LOF ? 1 : 0;
sc-s.OOF = result  SBE_2T3E3_FRAMER_VAL_E3_RX_OOF ? 1 : 0;
-#if 0
-   sc-s.LOS = result  SBE_2T3E3_FRAMER_VAL_E3_RX_LOS ? 1 : 0;
-#else
+
cpld_LOS_update(sc);
-#endif
+
sc-s.AIS = result  SBE_2T3E3_FRAMER_VAL_E3_RX_AIS ? 1 : 0;
sc-s.FERF = result  SBE_2T3E3_FRAMER_VAL_E3_RX_FERF ? 1 : 0;
break;
@@ -243,11 +241,9 @@ void t3e3_port_get_stats(struct channel *sc,
case SBE_2T3E3_FRAME_TYPE_T3_M13:
result = exar7250_read(sc, 
SBE_2T3E3_FRAMER_REG_T3_RX_CONFIGURATION_STATUS);
sc-s.AIS = result  SBE_2T3E3_FRAMER_VAL_T3_RX_AIS ? 1 : 0;
-#if 0
-   sc-s.LOS = result  SBE_2T3E3_FRAMER_VAL_T3_RX_LOS ? 1 : 0;
-#else
+
cpld_LOS_update(sc);
-#endif
+
sc-s.IDLE = result  SBE_2T3E3_FRAMER_VAL_T3_RX_IDLE ? 1 : 0;
sc-s.OOF = result  SBE_2T3E3_FRAMER_VAL_T3_RX_OOF ? 1 : 0;
 
@@ -322,10 +318,6 @@ void t3e3_if_config(struct channel *sc, u32 cmd, char *set,
*rlen = sizeof(ret-u.data);
break;
case SBE_2T3E3_PORT_WRITE_REGS:
-#if 0
-   printk(KERN_DEBUG SBE_2T3E3_PORT_WRITE_REGS, 0x%x, 0x%x, 
0x%x\n,
-  ((int*)data)[0], ((int*)data)[1], ((int*)data)[2]);
-#endif
t3e3_reg_write(sc, data);
*rlen = 0;
break;
@@ -336,9 +328,6 @@ void t3e3_if_config(struct channel *sc, u32 cmd, char *set,
*rlen = 0;
break;
}
-
-   /* turn on interrupt */
-   /* cpld_start_intr(sc); */
 }
 
 void t3e3_sc_init(struct channel *sc)
diff --git a/drivers/staging/sbe-2t3e3/dc.c b/drivers/staging/sbe-2t3e3/dc.c
index e897a43..9e81d90 100644
--- a/drivers/staging/sbe-2t3e3/dc.c
+++ b/drivers/staging/sbe-2t3e3/dc.c
@@ -63,14 +63,6 @@ void dc_init(struct channel *sc)
if (sc-p.loopback == SBE_2T3E3_LOOPBACK_ETHERNET)
sc-p.loopback = SBE_2T3E3_LOOPBACK_NONE;
 
-#if 0 /* No need to clear this register - and