if (dev->parent->children[chid] == dev)
                        break;
 
+#ifndef MUSB_NO_MULTIPOINT
        /* configure the hub address and the port address */
        writeb(hub, &musbr->tar[ep].txhubaddr);
        writeb((chid + 1), &musbr->tar[ep].txhubport);
        writeb(hub, &musbr->tar[ep].rxhubaddr);
        writeb((chid + 1), &musbr->tar[ep].rxhubport);
+#endif
 }
 
 /*
 int submit_control_msg(struct usb_device *dev, unsigned long pipe, void *buffer,
                        int len, struct devrequest *setup)
 {
+#ifndef MUSB_NO_MULTIPOINT
        int devnum = usb_pipedevice(pipe);
+#endif
        u16 csr;
        u8  devspeed;
 
        writeb(MUSB_CONTROL_EP, &musbr->index);
        csr = readw(&musbr->txcsr);
 
+#ifndef MUSB_NO_MULTIPOINT
        /* target addr and (for multipoint) hub addr/port */
        writeb(devnum, &musbr->tar[MUSB_CONTROL_EP].txfuncaddr);
        writeb(devnum, &musbr->tar[MUSB_CONTROL_EP].rxfuncaddr);
+#endif
 
        /* configure the hub address and the port number as required */
        devspeed = get_dev_speed(dev);
                writeb(devspeed << 6, &musbr->txtype);
        } else {
                writeb(musb_cfg.musb_speed << 6, &musbr->txtype);
+#ifndef MUSB_NO_MULTIPOINT
                writeb(0, &musbr->tar[MUSB_CONTROL_EP].txhubaddr);
                writeb(0, &musbr->tar[MUSB_CONTROL_EP].txhubport);
                writeb(0, &musbr->tar[MUSB_CONTROL_EP].rxhubaddr);
                writeb(0, &musbr->tar[MUSB_CONTROL_EP].rxhubport);
+#endif
        }
 
        /* Control transfer setup phase */
 {
        int dir_out = usb_pipeout(pipe);
        int ep = usb_pipeendpoint(pipe);
+#ifndef MUSB_NO_MULTIPOINT
        int devnum = usb_pipedevice(pipe);
+#endif
        u8  type;
        u16 csr;
        u32 txlen = 0;
        /* select bulk endpoint */
        writeb(MUSB_BULK_EP, &musbr->index);
 
+#ifndef MUSB_NO_MULTIPOINT
        /* write the address of the device */
        if (dir_out)
                writeb(devnum, &musbr->tar[MUSB_BULK_EP].txfuncaddr);
        else
                writeb(devnum, &musbr->tar[MUSB_BULK_EP].rxfuncaddr);
+#endif
 
        /* configure the hub address and the port number as required */
        devspeed = get_dev_speed(dev);
                 */
                config_hub_port(dev, MUSB_BULK_EP);
        } else {
+#ifndef MUSB_NO_MULTIPOINT
                if (dir_out) {
                        writeb(0, &musbr->tar[MUSB_BULK_EP].txhubaddr);
                        writeb(0, &musbr->tar[MUSB_BULK_EP].txhubport);
                        writeb(0, &musbr->tar[MUSB_BULK_EP].rxhubaddr);
                        writeb(0, &musbr->tar[MUSB_BULK_EP].rxhubport);
                }
+#endif
                devspeed = musb_cfg.musb_speed;
        }
 
 {
        int dir_out = usb_pipeout(pipe);
        int ep = usb_pipeendpoint(pipe);
+#ifndef MUSB_NO_MULTIPOINT
        int devnum = usb_pipedevice(pipe);
+#endif
        u8  type;
        u16 csr;
        u32 txlen = 0;
        /* select interrupt endpoint */
        writeb(MUSB_INTR_EP, &musbr->index);
 
+#ifndef MUSB_NO_MULTIPOINT
        /* write the address of the device */
        if (dir_out)
                writeb(devnum, &musbr->tar[MUSB_INTR_EP].txfuncaddr);
        else
                writeb(devnum, &musbr->tar[MUSB_INTR_EP].rxfuncaddr);
+#endif
 
        /* configure the hub address and the port number as required */
        devspeed = get_dev_speed(dev);
                 */
                config_hub_port(dev, MUSB_INTR_EP);
        } else {
+#ifndef MUSB_NO_MULTIPOINT
                if (dir_out) {
                        writeb(0, &musbr->tar[MUSB_INTR_EP].txhubaddr);
                        writeb(0, &musbr->tar[MUSB_INTR_EP].txhubport);
                        writeb(0, &musbr->tar[MUSB_INTR_EP].rxhubaddr);
                        writeb(0, &musbr->tar[MUSB_INTR_EP].rxhubport);
                }
+#endif
                devspeed = musb_cfg.musb_speed;
        }