Re: Re: ss.h: unnecessary bit-field

2010-07-22 Thread Komuro
Hi,

>> include/pcmcia/ss.h
>> 
>> >/* socket setup is done so resources should be able to be allocated.
>> > * Only if set to 1, calls to find_{io,mem}_region are handled, and
>> > * insertio events are actually managed by the PCMCIA layer.*/
>> >u8  resource_setup_done:1;
>> >
>> >/* It's old if resource setup is done using adjust_resource_info() */
>> >u8  resource_setup_old:1;
>> >u8  resource_setup_new:1;
>> >
>> >u8  reserved:5;
>> 
>> meaningless bit-field?
>
>resource_setup_done is still needed.
>
>What about this patch?

OK. Thanks!


___
Linux PCMCIA reimplementation list
http://lists.infradead.org/mailman/listinfo/linux-pcmcia


Re: ss.h: unnecessary bit-field

2010-07-21 Thread Dominik Brodowski
Hey,

On Sat, Jul 17, 2010 at 10:03:52PM +0900, Komuro wrote:
> Hi,
> 
> include/pcmcia/ss.h
> 
> > /* socket setup is done so resources should be able to be allocated.
> >  * Only if set to 1, calls to find_{io,mem}_region are handled, and
> >  * insertio events are actually managed by the PCMCIA layer.*/
> > u8  resource_setup_done:1;
> >
> > /* It's old if resource setup is done using adjust_resource_info() */
> > u8  resource_setup_old:1;
> > u8  resource_setup_new:1;
> >
> > u8  reserved:5;
> 
> meaningless bit-field?

resource_setup_done is still needed.

What about this patch?

From: Dominik Brodowski 
Date: Wed, 21 Jul 2010 14:43:05 +0200
Subject: [PATCH] pcmcia: remove unused flag, simplify headers

As we only provide one way to set up resources now, we can remove
the resource-setup-related bitfield (except resource_setup_done).
In addition, pcmcia_state only consisted of one entry, so remove
this bitfield as well.

Suggested-by: Komuro 
Signed-off-by: Dominik Brodowski 

diff --git a/drivers/pcmcia/ds.c b/drivers/pcmcia/ds.c
index 43dadab..73aeaea 100644
--- a/drivers/pcmcia/ds.c
+++ b/drivers/pcmcia/ds.c
@@ -294,7 +294,7 @@ static int pcmcia_device_probe(struct device *dev)
}
 
mutex_lock(&s->ops_mutex);
-   if ((s->pcmcia_state.has_pfc) &&
+   if ((s->pcmcia_pfc) &&
(p_dev->socket->device_count == 1) && (p_dev->device_no == 0))
pcmcia_parse_uevents(s, PCMCIA_UEVENT_REQUERY);
mutex_unlock(&s->ops_mutex);
@@ -359,7 +359,7 @@ static int pcmcia_device_remove(struct device *dev)
 * pseudo multi-function card, we need to unbind
 * all devices
 */
-   if ((p_dev->socket->pcmcia_state.has_pfc) &&
+   if ((p_dev->socket->pcmcia_pfc) &&
(p_dev->socket->device_count > 0) &&
(p_dev->device_no == 0))
pcmcia_card_remove(p_dev->socket, p_dev);
@@ -680,7 +680,7 @@ static void pcmcia_requery(struct pcmcia_socket *s)
 * call pcmcia_device_add() -- which will fail if both
 * devices are already registered. */
mutex_lock(&s->ops_mutex);
-   has_pfc = s->pcmcia_state.has_pfc;
+   has_pfc = s->pcmcia_pfc;
mutex_unlock(&s->ops_mutex);
if (has_pfc)
pcmcia_device_add(s, 0);
@@ -812,7 +812,7 @@ static inline int pcmcia_devmatch(struct pcmcia_device *dev,
if (did->match_flags & PCMCIA_DEV_ID_MATCH_DEVICE_NO) {
dev_dbg(&dev->dev, "this is a pseudo-multi-function device\n");
mutex_lock(&dev->socket->ops_mutex);
-   dev->socket->pcmcia_state.has_pfc = 1;
+   dev->socket->pcmcia_pfc = 1;
mutex_unlock(&dev->socket->ops_mutex);
if (dev->device_no != did->device_no)
return 0;
@@ -826,7 +826,7 @@ static inline int pcmcia_devmatch(struct pcmcia_device *dev,
 
/* if this is a pseudo-multi-function device,
 * we need explicit matches */
-   if (dev->socket->pcmcia_state.has_pfc)
+   if (dev->socket->pcmcia_pfc)
return 0;
if (dev->device_no)
return 0;
@@ -1225,7 +1225,7 @@ static int pcmcia_bus_add(struct pcmcia_socket *skt)
atomic_set(&skt->present, 1);
 
mutex_lock(&skt->ops_mutex);
-   skt->pcmcia_state.has_pfc = 0;
+   skt->pcmcia_pfc = 0;
destroy_cis_cache(skt); /* to be on the safe side... */
mutex_unlock(&skt->ops_mutex);
 
@@ -1316,7 +1316,7 @@ static int __devinit pcmcia_bus_add_socket(struct device 
*dev,
}
 
INIT_LIST_HEAD(&socket->devices_list);
-   memset(&socket->pcmcia_state, 0, sizeof(u8));
+   socket->pcmcia_pfc = 0;
socket->device_count = 0;
atomic_set(&socket->present, 0);
 
diff --git a/drivers/pcmcia/rsrc_nonstatic.c b/drivers/pcmcia/rsrc_nonstatic.c
index d217dc1..13245a2 100644
--- a/drivers/pcmcia/rsrc_nonstatic.c
+++ b/drivers/pcmcia/rsrc_nonstatic.c
@@ -1113,8 +1113,6 @@ static ssize_t store_io_db(struct device *dev,
 
mutex_lock(&s->ops_mutex);
ret = adjust_io(s, add, start_addr, end_addr);
-   if (!ret)
-   s->resource_setup_new = 1;
mutex_unlock(&s->ops_mutex);
 
return ret ? ret : count;
@@ -1181,8 +1179,6 @@ static ssize_t store_mem_db(struct device *dev,
 
mutex_lock(&s->ops_mutex);
ret = adjust_memory(s, add, start_addr, end_addr);
-   if (!ret)
-   s->resource_setup_new = 1;
mutex_unlock(&s->ops_mutex);
 
return ret ? ret : count;
diff --git a/include/pcmcia/ss.h b/include/pcmcia/ss.h
index 66740b7..aeac271 100644
--- a/include/pcmcia/ss.h
+++ b/include/pcmcia/ss.h
@@ -162,17 +162,10 @@ struct pcmcia_socket {
u_int   pci_irq;

ss.h: unnecessary bit-field

2010-07-17 Thread Komuro
Hi,

include/pcmcia/ss.h

>   /* socket setup is done so resources should be able to be allocated.
>* Only if set to 1, calls to find_{io,mem}_region are handled, and
>* insertio events are actually managed by the PCMCIA layer.*/
>   u8  resource_setup_done:1;
>
>   /* It's old if resource setup is done using adjust_resource_info() */
>   u8  resource_setup_old:1;
>   u8  resource_setup_new:1;
>
>   u8  reserved:5;

meaningless bit-field?

>   /* 16-bit state: */
>   struct {
>   /* the PCMCIA card consists of two pseudo devices */
>   u8  has_pfc:1;
>
>   u8  reserved:7;
>   } pcmcia_state;

"struct pcmcia_state" is unnecessary?
it should be
u8 has_pfc;





___
Linux PCMCIA reimplementation list
http://lists.infradead.org/mailman/listinfo/linux-pcmcia