Commit ec0dd2f2 authored by Antti Palosaari's avatar Antti Palosaari Committed by Mauro Carvalho Chehab

[media] dvb_usb_v2: use container_of() for adapter to device

We dont need that pointer as we can use container_of() macro thus
remove it.
Signed-off-by: default avatarAntti Palosaari <crope@iki.fi>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 2731d4ed
...@@ -23,7 +23,8 @@ ...@@ -23,7 +23,8 @@
#include "dvb-usb-ids.h" #include "dvb-usb-ids.h"
/* helper macros for every DVB USB driver use */ /* helper macros for every DVB USB driver use */
#define adap_to_d(adap) ((adap)->dev) #define adap_to_d(adap) (container_of(adap, struct dvb_usb_device, \
adapter[adap->id]))
#define adap_to_priv(adap) (adap_to_d(adap)->priv) #define adap_to_priv(adap) (adap_to_d(adap)->priv)
#define fe_to_adap(fe) ((struct dvb_usb_adapter *) ((fe)->dvb->priv)) #define fe_to_adap(fe) ((struct dvb_usb_adapter *) ((fe)->dvb->priv))
#define fe_to_d(fe) (adap_to_d(fe_to_adap(fe))) #define fe_to_d(fe) (adap_to_d(fe_to_adap(fe)))
...@@ -297,7 +298,6 @@ struct usb_data_stream { ...@@ -297,7 +298,6 @@ struct usb_data_stream {
* @stream: the usb data stream. * @stream: the usb data stream.
*/ */
struct dvb_usb_adapter { struct dvb_usb_adapter {
struct dvb_usb_device *dev;
const struct dvb_usb_adapter_properties *props; const struct dvb_usb_adapter_properties *props;
struct usb_data_stream stream; struct usb_data_stream stream;
u8 id; u8 id;
......
...@@ -33,7 +33,7 @@ int dvb_usbv2_adapter_stream_init(struct dvb_usb_adapter *adap) ...@@ -33,7 +33,7 @@ int dvb_usbv2_adapter_stream_init(struct dvb_usb_adapter *adap)
{ {
pr_debug("%s: adap=%d\n", __func__, adap->id); pr_debug("%s: adap=%d\n", __func__, adap->id);
adap->stream.udev = adap->dev->udev; adap->stream.udev = adap_to_d(adap)->udev;
adap->stream.user_priv = adap; adap->stream.user_priv = adap;
adap->stream.complete = dvb_usb_data_complete; adap->stream.complete = dvb_usb_data_complete;
...@@ -52,6 +52,7 @@ int dvb_usbv2_adapter_stream_exit(struct dvb_usb_adapter *adap) ...@@ -52,6 +52,7 @@ int dvb_usbv2_adapter_stream_exit(struct dvb_usb_adapter *adap)
static int dvb_usb_ctrl_feed(struct dvb_demux_feed *dvbdmxfeed, int onoff) static int dvb_usb_ctrl_feed(struct dvb_demux_feed *dvbdmxfeed, int onoff)
{ {
struct dvb_usb_adapter *adap = dvbdmxfeed->demux->priv; struct dvb_usb_adapter *adap = dvbdmxfeed->demux->priv;
struct dvb_usb_device *d = adap_to_d(adap);
int newfeedcount, ret; int newfeedcount, ret;
if (adap == NULL) { if (adap == NULL) {
...@@ -69,8 +70,8 @@ static int dvb_usb_ctrl_feed(struct dvb_demux_feed *dvbdmxfeed, int onoff) ...@@ -69,8 +70,8 @@ static int dvb_usb_ctrl_feed(struct dvb_demux_feed *dvbdmxfeed, int onoff)
pr_debug("%s: stop feeding\n", __func__); pr_debug("%s: stop feeding\n", __func__);
usb_urb_killv2(&adap->stream); usb_urb_killv2(&adap->stream);
if (adap->dev->props->streaming_ctrl != NULL) { if (d->props->streaming_ctrl != NULL) {
ret = adap->dev->props->streaming_ctrl(adap, 0); ret = d->props->streaming_ctrl(adap, 0);
if (ret < 0) { if (ret < 0) {
pr_err("%s: error while stopping stream\n", pr_err("%s: error while stopping stream\n",
KBUILD_MODNAME); KBUILD_MODNAME);
...@@ -103,9 +104,8 @@ static int dvb_usb_ctrl_feed(struct dvb_demux_feed *dvbdmxfeed, int onoff) ...@@ -103,9 +104,8 @@ static int dvb_usb_ctrl_feed(struct dvb_demux_feed *dvbdmxfeed, int onoff)
mutex_lock(&adap->sync_mutex); mutex_lock(&adap->sync_mutex);
/* resolve TS configuration */ /* resolve TS configuration */
if (adap->dev->props->get_ts_config) { if (d->props->get_ts_config) {
ret = adap->dev->props->get_ts_config( ret = d->props->get_ts_config(adap->fe[adap->active_fe],
adap->fe[adap->active_fe],
&ts_props); &ts_props);
if (ret < 0) if (ret < 0)
goto err_mutex_unlock; goto err_mutex_unlock;
...@@ -121,10 +121,10 @@ static int dvb_usb_ctrl_feed(struct dvb_demux_feed *dvbdmxfeed, int onoff) ...@@ -121,10 +121,10 @@ static int dvb_usb_ctrl_feed(struct dvb_demux_feed *dvbdmxfeed, int onoff)
adap->stream.complete = dvb_usb_data_complete; adap->stream.complete = dvb_usb_data_complete;
/* resolve USB stream configuration */ /* resolve USB stream configuration */
if (adap->dev->props->get_usb_stream_config) { if (d->props->get_usb_stream_config) {
memcpy(&stream_props, &adap->props->stream, memcpy(&stream_props, &adap->props->stream,
sizeof(struct usb_data_stream_properties)); sizeof(struct usb_data_stream_properties));
ret = adap->dev->props->get_usb_stream_config( ret = d->props->get_usb_stream_config(
adap->fe[adap->active_fe], adap->fe[adap->active_fe],
&stream_props); &stream_props);
if (ret < 0) if (ret < 0)
...@@ -150,8 +150,8 @@ static int dvb_usb_ctrl_feed(struct dvb_demux_feed *dvbdmxfeed, int onoff) ...@@ -150,8 +150,8 @@ static int dvb_usb_ctrl_feed(struct dvb_demux_feed *dvbdmxfeed, int onoff)
} }
} }
pr_debug("%s: start feeding\n", __func__); pr_debug("%s: start feeding\n", __func__);
if (adap->dev->props->streaming_ctrl != NULL) { if (d->props->streaming_ctrl != NULL) {
ret = adap->dev->props->streaming_ctrl(adap, 1); ret = d->props->streaming_ctrl(adap, 1);
if (ret < 0) { if (ret < 0) {
pr_err("%s: error while enabling fifo\n", pr_err("%s: error while enabling fifo\n",
KBUILD_MODNAME); KBUILD_MODNAME);
...@@ -186,11 +186,11 @@ static int dvb_usb_stop_feed(struct dvb_demux_feed *dvbdmxfeed) ...@@ -186,11 +186,11 @@ static int dvb_usb_stop_feed(struct dvb_demux_feed *dvbdmxfeed)
int dvb_usbv2_adapter_dvb_init(struct dvb_usb_adapter *adap) int dvb_usbv2_adapter_dvb_init(struct dvb_usb_adapter *adap)
{ {
int ret; int ret;
struct dvb_usb_device *d = adap_to_d(adap);
pr_debug("%s: adap=%d\n", __func__, adap->id); pr_debug("%s: adap=%d\n", __func__, adap->id);
ret = dvb_register_adapter(&adap->dvb_adap, adap->dev->name, ret = dvb_register_adapter(&adap->dvb_adap, d->name, d->props->owner,
adap->dev->props->owner, &adap->dev->udev->dev, &d->udev->dev, d->props->adapter_nr);
adap->dev->props->adapter_nr);
if (ret < 0) { if (ret < 0) {
pr_debug("%s: dvb_register_adapter() failed=%d\n", __func__, pr_debug("%s: dvb_register_adapter() failed=%d\n", __func__,
ret); ret);
...@@ -199,8 +199,8 @@ int dvb_usbv2_adapter_dvb_init(struct dvb_usb_adapter *adap) ...@@ -199,8 +199,8 @@ int dvb_usbv2_adapter_dvb_init(struct dvb_usb_adapter *adap)
adap->dvb_adap.priv = adap; adap->dvb_adap.priv = adap;
if (adap->dev->props->read_mac_address) { if (d->props->read_mac_address) {
ret = adap->dev->props->read_mac_address(adap, ret = d->props->read_mac_address(adap,
adap->dvb_adap.proposed_mac); adap->dvb_adap.proposed_mac);
if (ret < 0) if (ret < 0)
goto err_dmx; goto err_dmx;
...@@ -273,15 +273,16 @@ static int dvb_usb_fe_wakeup(struct dvb_frontend *fe) ...@@ -273,15 +273,16 @@ static int dvb_usb_fe_wakeup(struct dvb_frontend *fe)
{ {
int ret; int ret;
struct dvb_usb_adapter *adap = fe->dvb->priv; struct dvb_usb_adapter *adap = fe->dvb->priv;
struct dvb_usb_device *d = adap_to_d(adap);
mutex_lock(&adap->sync_mutex); mutex_lock(&adap->sync_mutex);
pr_debug("%s: adap=%d fe=%d\n", __func__, adap->id, fe->id); pr_debug("%s: adap=%d fe=%d\n", __func__, adap->id, fe->id);
ret = dvb_usbv2_device_power_ctrl(adap->dev, 1); ret = dvb_usbv2_device_power_ctrl(d, 1);
if (ret < 0) if (ret < 0)
goto err; goto err;
if (adap->dev->props->frontend_ctrl) { if (d->props->frontend_ctrl) {
ret = adap->dev->props->frontend_ctrl(fe, 1); ret = d->props->frontend_ctrl(fe, 1);
if (ret < 0) if (ret < 0)
goto err; goto err;
} }
...@@ -306,6 +307,7 @@ static int dvb_usb_fe_sleep(struct dvb_frontend *fe) ...@@ -306,6 +307,7 @@ static int dvb_usb_fe_sleep(struct dvb_frontend *fe)
{ {
int ret; int ret;
struct dvb_usb_adapter *adap = fe->dvb->priv; struct dvb_usb_adapter *adap = fe->dvb->priv;
struct dvb_usb_device *d = adap_to_d(adap);
mutex_lock(&adap->sync_mutex); mutex_lock(&adap->sync_mutex);
pr_debug("%s: adap=%d fe=%d\n", __func__, adap->id, fe->id); pr_debug("%s: adap=%d fe=%d\n", __func__, adap->id, fe->id);
...@@ -315,13 +317,13 @@ static int dvb_usb_fe_sleep(struct dvb_frontend *fe) ...@@ -315,13 +317,13 @@ static int dvb_usb_fe_sleep(struct dvb_frontend *fe)
goto err; goto err;
} }
if (adap->dev->props->frontend_ctrl) { if (d->props->frontend_ctrl) {
ret = adap->dev->props->frontend_ctrl(fe, 0); ret = d->props->frontend_ctrl(fe, 0);
if (ret < 0) if (ret < 0)
goto err; goto err;
} }
ret = dvb_usbv2_device_power_ctrl(adap->dev, 0); ret = dvb_usbv2_device_power_ctrl(d, 0);
if (ret < 0) if (ret < 0)
goto err; goto err;
...@@ -338,13 +340,14 @@ static int dvb_usb_fe_sleep(struct dvb_frontend *fe) ...@@ -338,13 +340,14 @@ static int dvb_usb_fe_sleep(struct dvb_frontend *fe)
int dvb_usbv2_adapter_frontend_init(struct dvb_usb_adapter *adap) int dvb_usbv2_adapter_frontend_init(struct dvb_usb_adapter *adap)
{ {
int ret, i, count_registered = 0; int ret, i, count_registered = 0;
struct dvb_usb_device *d = adap_to_d(adap);
pr_debug("%s: adap=%d\n", __func__, adap->id); pr_debug("%s: adap=%d\n", __func__, adap->id);
memset(adap->fe, 0, sizeof(adap->fe)); memset(adap->fe, 0, sizeof(adap->fe));
adap->active_fe = -1; adap->active_fe = -1;
if (adap->dev->props->frontend_attach) { if (d->props->frontend_attach) {
ret = adap->dev->props->frontend_attach(adap); ret = d->props->frontend_attach(adap);
if (ret < 0) { if (ret < 0) {
pr_debug("%s: frontend_attach() failed=%d\n", __func__, pr_debug("%s: frontend_attach() failed=%d\n", __func__,
ret); ret);
...@@ -375,8 +378,8 @@ int dvb_usbv2_adapter_frontend_init(struct dvb_usb_adapter *adap) ...@@ -375,8 +378,8 @@ int dvb_usbv2_adapter_frontend_init(struct dvb_usb_adapter *adap)
count_registered++; count_registered++;
} }
if (adap->dev->props->tuner_attach) { if (d->props->tuner_attach) {
ret = adap->dev->props->tuner_attach(adap); ret = d->props->tuner_attach(adap);
if (ret < 0) { if (ret < 0) {
pr_debug("%s: tuner_attach() failed=%d\n", __func__, pr_debug("%s: tuner_attach() failed=%d\n", __func__,
ret); ret);
......
...@@ -226,7 +226,6 @@ static int dvb_usbv2_adapter_init(struct dvb_usb_device *d) ...@@ -226,7 +226,6 @@ static int dvb_usbv2_adapter_init(struct dvb_usb_device *d)
for (i = 0; i < adapter_count; i++) { for (i = 0; i < adapter_count; i++) {
adap = &d->adapter[i]; adap = &d->adapter[i];
adap->dev = d;
adap->id = i; adap->id = i;
adap->props = &d->props->adapter[i]; adap->props = &d->props->adapter[i];
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment