From 7bdf84fc47f2d2ed2194b6ade480d043207c4098 Mon Sep 17 00:00:00 2001
From: Darron Broad <darron@kewl.org>
Date: Wed, 15 Oct 2008 13:43:41 -0300
Subject: [PATCH] V4L/DVB (9265): videobuf: data storage optimisation

To optimise data storage redundant vars are removed.

Signed-off-by: Darron Broad <darron@kewl.org>
Signed-off-by: Steven Toth <stoth@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
---
 drivers/media/video/cx23885/cx23885-core.c |  2 +-
 drivers/media/video/cx88/cx88-mpeg.c       |  2 +-
 drivers/media/video/saa7134/saa7134-dvb.c  |  2 +-
 drivers/media/video/videobuf-dvb.c         | 11 +++++------
 include/media/videobuf-dvb.h               |  5 ++---
 5 files changed, 10 insertions(+), 12 deletions(-)

diff --git a/drivers/media/video/cx23885/cx23885-core.c b/drivers/media/video/cx23885/cx23885-core.c
index 110e2ed2061d..8f6fb2add7de 100644
--- a/drivers/media/video/cx23885/cx23885-core.c
+++ b/drivers/media/video/cx23885/cx23885-core.c
@@ -643,7 +643,7 @@ static int cx23885_init_tsport(struct cx23885_dev *dev,
 	init_timer(&port->mpegq.timeout);
 
 	mutex_init(&port->frontends.lock);
-	INIT_LIST_HEAD(&port->frontends.frontend.felist);
+	INIT_LIST_HEAD(&port->frontends.felist);
 	port->frontends.active_fe_id = 0;
 
 	/* This should be hardcoded allow a single frontend
diff --git a/drivers/media/video/cx88/cx88-mpeg.c b/drivers/media/video/cx88/cx88-mpeg.c
index 1d8c8dd3006a..512041451d38 100644
--- a/drivers/media/video/cx88/cx88-mpeg.c
+++ b/drivers/media/video/cx88/cx88-mpeg.c
@@ -802,7 +802,7 @@ static int __devinit cx8802_probe(struct pci_dev *pci_dev,
 	list_add_tail(&dev->devlist,&cx8802_devlist);
 
 	mutex_init(&dev->frontends.lock);
-	INIT_LIST_HEAD(&dev->frontends.frontend.felist);
+	INIT_LIST_HEAD(&dev->frontends.felist);
 
 	printk(KERN_INFO "%s() allocating %d frontend(s)\n", __func__, core->board.num_frontends);
 
diff --git a/drivers/media/video/saa7134/saa7134-dvb.c b/drivers/media/video/saa7134/saa7134-dvb.c
index d2d238912fbf..7d95a6928772 100644
--- a/drivers/media/video/saa7134/saa7134-dvb.c
+++ b/drivers/media/video/saa7134/saa7134-dvb.c
@@ -953,7 +953,7 @@ static int dvb_init(struct saa7134_dev *dev)
 
 	/* FIXME: add support for multi-frontend */
 	mutex_init(&dev->frontends.lock);
-	INIT_LIST_HEAD(&dev->frontends.frontend.felist);
+	INIT_LIST_HEAD(&dev->frontends.felist);
 	dev->frontends.active_fe_id = 0;
 
 	printk(KERN_INFO "%s() allocating 1 frontend\n", __func__);
diff --git a/drivers/media/video/videobuf-dvb.c b/drivers/media/video/videobuf-dvb.c
index af0b75cda6fd..fc4cfaa7bf5f 100644
--- a/drivers/media/video/videobuf-dvb.c
+++ b/drivers/media/video/videobuf-dvb.c
@@ -162,9 +162,8 @@ int videobuf_dvb_register_bus(struct videobuf_dvb_frontends *f,
 
 	/* Attach all of the frontends to the adapter */
 	mutex_lock(&f->lock);
-	list_for_each_safe(list, q, &f->frontend.felist) {
+	list_for_each_safe(list, q, &f->felist) {
 		fe = list_entry(list, struct videobuf_dvb_frontend, felist);
-
 		res = videobuf_dvb_register_frontend(&f->adapter, &fe->dvb);
 		if (res < 0) {
 			printk(KERN_WARNING "%s: videobuf_dvb_register_frontend failed (errno = %d)\n",
@@ -290,7 +289,7 @@ void videobuf_dvb_unregister_bus(struct videobuf_dvb_frontends *f)
 	struct videobuf_dvb_frontend *fe;
 
 	mutex_lock(&f->lock);
-	list_for_each_safe(list, q, &f->frontend.felist) {
+	list_for_each_safe(list, q, &f->felist) {
 		fe = list_entry(list, struct videobuf_dvb_frontend, felist);
 
 		dvb_net_release(&fe->dvb.net);
@@ -316,7 +315,7 @@ struct videobuf_dvb_frontend * videobuf_dvb_get_frontend(struct videobuf_dvb_fro
 
 	mutex_lock(&f->lock);
 
-	list_for_each_safe(list, q, &f->frontend.felist) {
+	list_for_each_safe(list, q, &f->felist) {
 		fe = list_entry(list, struct videobuf_dvb_frontend, felist);
 		if (fe->id == id) {
 			ret = fe;
@@ -337,7 +336,7 @@ int videobuf_dvb_find_frontend(struct videobuf_dvb_frontends *f, struct dvb_fron
 
 	mutex_lock(&f->lock);
 
-	list_for_each_safe(list, q, &f->frontend.felist) {
+	list_for_each_safe(list, q, &f->felist) {
 		fe = list_entry(list, struct videobuf_dvb_frontend, felist);
 		if (fe->dvb.frontend == p) {
 			ret = fe->id;
@@ -363,7 +362,7 @@ struct videobuf_dvb_frontend * videobuf_dvb_alloc_frontend(void *private, struct
 	mutex_init(&fe->dvb.lock);
 
 	mutex_lock(&f->lock);
-	list_add_tail(&fe->felist,&f->frontend.felist);
+	list_add_tail(&fe->felist,&f->felist);
 	mutex_unlock(&f->lock);
 
 fail_alloc:
diff --git a/include/media/videobuf-dvb.h b/include/media/videobuf-dvb.h
index 1a401f7320b9..069215c77a65 100644
--- a/include/media/videobuf-dvb.h
+++ b/include/media/videobuf-dvb.h
@@ -16,7 +16,6 @@ struct videobuf_dvb {
 	int                        nfeeds;
 
 	/* videobuf_dvb_(un)register manges this */
-	struct dvb_adapter         adapter;
 	struct dvb_demux           demux;
 	struct dmxdev              dmxdev;
 	struct dmx_frontend        fe_hw;
@@ -25,17 +24,17 @@ struct videobuf_dvb {
 };
 
 struct videobuf_dvb_frontend {
-	void *dev;
 	struct list_head felist;
+	void *dev;
 	int id;
 	struct videobuf_dvb dvb;
 };
 
 struct videobuf_dvb_frontends {
+	struct list_head felist;
 	struct mutex lock;
 	struct dvb_adapter adapter;
 	int active_fe_id; /* Indicates which frontend in the felist is in use */
-	struct videobuf_dvb_frontend frontend;
 	int gate; /* Frontend with gate control 0=!MFE,1=fe0,2=fe1 etc */
 };