lkml.org 
[lkml]   [2006]   [Jan]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [CFT 3/3] Add bttv sub bus_type probe and remove methods
On 1/6/06, Russell King <rmk@arm.linux.org.uk> wrote:
> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
>
> (This is an additional patch - on lkml, see
> "[CFT 1/29] Add bus_type probe, remove, shutdown methods.")
>
> ---
> drivers/media/dvb/bt8xx/dvb-bt8xx.c | 23 +++++++++++------------
> drivers/media/video/bttv-gpio.c | 24 ++++++++++++++++++++++--
> drivers/media/video/bttv.h | 2 ++
> drivers/media/video/ir-kbd-gpio.c | 17 ++++++++---------
> 4 files changed, 43 insertions(+), 23 deletions(-)
>
> diff --git a/drivers/media/dvb/bt8xx/dvb-bt8xx.c b/drivers/media/dvb/bt8xx/dvb-bt8xx.c
> --- a/drivers/media/dvb/bt8xx/dvb-bt8xx.c
> +++ b/drivers/media/dvb/bt8xx/dvb-bt8xx.c
> @@ -787,9 +787,8 @@ static int __init dvb_bt8xx_load_card(st
> return 0;
> }
>
> -static int dvb_bt8xx_probe(struct device *dev)
> +static int dvb_bt8xx_probe(struct bttv_sub_device *sub)
> {
> - struct bttv_sub_device *sub = to_bttv_sub_dev(dev);
> struct dvb_bt8xx_card *card;
> struct pci_dev* bttv_pci_dev;
> int ret;
> @@ -907,13 +906,13 @@ static int dvb_bt8xx_probe(struct device
> return ret;
> }
>
> - dev_set_drvdata(dev, card);
> + dev_set_drvdata(&sub->dev, card);
> return 0;
> }
>
> -static int dvb_bt8xx_remove(struct device *dev)
> +static int dvb_bt8xx_remove(struct bttv_sub_device *sub)
> {
> - struct dvb_bt8xx_card *card = dev_get_drvdata(dev);
> + struct dvb_bt8xx_card *card = dev_get_drvdata(&sub->dev);
>
> dprintk("dvb_bt8xx: unloading card%d\n", card->bttv_nr);
>
> @@ -936,14 +935,14 @@ static int dvb_bt8xx_remove(struct devic
> static struct bttv_sub_driver driver = {
> .drv = {
> .name = "dvb-bt8xx",
> - .probe = dvb_bt8xx_probe,
> - .remove = dvb_bt8xx_remove,
> - /* FIXME:
> - * .shutdown = dvb_bt8xx_shutdown,
> - * .suspend = dvb_bt8xx_suspend,
> - * .resume = dvb_bt8xx_resume,
> - */
> },
> + .probe = dvb_bt8xx_probe,
> + .remove = dvb_bt8xx_remove,
> + /* FIXME:
> + * .shutdown = dvb_bt8xx_shutdown,
> + * .suspend = dvb_bt8xx_suspend,
> + * .resume = dvb_bt8xx_resume,
> + */
> };
>
> static int __init dvb_bt8xx_init(void)
> diff --git a/drivers/media/video/bttv-gpio.c b/drivers/media/video/bttv-gpio.c
> --- a/drivers/media/video/bttv-gpio.c
> +++ b/drivers/media/video/bttv-gpio.c
> @@ -47,9 +47,29 @@ static int bttv_sub_bus_match(struct dev
> return 0;
> }
>
> +static int bttv_sub_probe(struct device *dev)
> +{
> + struct bttv_sub_device *sdev = to_bttv_sub_dev(dev);
> + struct bttv_sub_driver *sub = to_bttv_sub_drv(dev->driver);
> +
> + return sub->probe ? sub->probe(sdev) : -ENODEV;
> +}
> +
> +static int bttv_sub_remove(struct device *dev)
> +{
> + struct bttv_sub_device *sdev = to_bttv_sub_dev(dev);
> + struct bttv_sub_driver *sub = to_bttv_sub_drv(dev->driver);
> +
> + if (sub->remove)
> + sub->remove(sdev);
> + return 0;
> +}
> +
> struct bus_type bttv_sub_bus_type = {
> - .name = "bttv-sub",
> - .match = &bttv_sub_bus_match,
> + .name = "bttv-sub",
> + .match = &bttv_sub_bus_match,
> + .probe = bttv_sub_probe,
> + .remove = bttv_sub_remove,
> };
> EXPORT_SYMBOL(bttv_sub_bus_type);
>
> diff --git a/drivers/media/video/bttv.h b/drivers/media/video/bttv.h
> --- a/drivers/media/video/bttv.h
> +++ b/drivers/media/video/bttv.h
> @@ -334,6 +334,8 @@ struct bttv_sub_device {
> struct bttv_sub_driver {
> struct device_driver drv;
> char wanted[BUS_ID_SIZE];
> + int (*probe)(struct bttv_sub_device *sub);
> + void (*remove)(struct bttv_sub_device *sub);
> void (*gpio_irq)(struct bttv_sub_device *sub);
> int (*any_irq)(struct bttv_sub_device *sub);
> };
> diff --git a/drivers/media/video/ir-kbd-gpio.c b/drivers/media/video/ir-kbd-gpio.c
> --- a/drivers/media/video/ir-kbd-gpio.c
> +++ b/drivers/media/video/ir-kbd-gpio.c
> @@ -319,15 +319,15 @@ module_param(repeat_period, int, 0644);
> printk(KERN_DEBUG DEVNAME ": " fmt , ## arg)
>
> static void ir_irq(struct bttv_sub_device *sub);
> -static int ir_probe(struct device *dev);
> -static int ir_remove(struct device *dev);
> +static int ir_probe(struct bttv_sub_device *sub);
> +static int ir_remove(struct bttv_sub_device *sub);
>
> static struct bttv_sub_driver driver = {
> .drv = {
> .name = DEVNAME,
> - .probe = ir_probe,
> - .remove = ir_remove,
> },
> + .probe = ir_probe,
> + .remove = ir_remove,
> .gpio_irq = ir_irq,
> };
>
> @@ -570,9 +570,8 @@ static void ir_rc5_timer_keyup(unsigned
>
> /* ---------------------------------------------------------------------- */
>
> -static int ir_probe(struct device *dev)
> +static int ir_probe(struct bttv_sub_device *sub)
> {
> - struct bttv_sub_device *sub = to_bttv_sub_dev(dev);
> struct IR *ir;
> struct input_dev *input_dev;
> IR_KEYTAB_TYPE *ir_codes = NULL;
> @@ -707,7 +706,7 @@ static int ir_probe(struct device *dev)
> }
>
> /* all done */
> - dev_set_drvdata(dev, ir);
> + dev_set_drvdata(&sub->dev, ir);
> input_register_device(ir->input);
>
> /* the remote isn't as bouncy as a keyboard */
> @@ -717,9 +716,9 @@ static int ir_probe(struct device *dev)
> return 0;
> }
>
> -static int ir_remove(struct device *dev)
> +static int ir_remove(struct bttv_sub_device *sub)
> {
> - struct IR *ir = dev_get_drvdata(dev);
> + struct IR *ir = dev_get_drvdata(&sub->dev);
>
> if (ir->polling) {
> del_timer(&ir->timer);
>
> --
> video4linux-list mailing list
> Unsubscribe mailto:video4linux-list-request@redhat.com?subject=unsubscribe
> https://www.redhat.com/mailman/listinfo/video4linux-list
>

Russell-

I apologize for not emailing you earlier... I didnt see this patch
originally, but I saw it this morning in GregKH's quilt tree...

We've gotten rid of ir-kbd-gpio.c , in favor of bttv-input.c ...

This change hit Linus' tree yesterday.

http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4abdfed5676e5ef7f2461bb76f5929068a9cc9cf

Please regenerate your patch.

Thanks,

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

\
 
 \ /
  Last update: 2006-01-10 16:08    [W:0.161 / U:0.032 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site