Bug 71131

Summary: iSight webcam on MacBookPro11,1 (Retina, 13-inch, Late 2013) changed from USB to PCIe and so far no existent driver available.
Product: Drivers Reporter: Leonardo Borda (leonardoborda)
Component: PCIAssignee: drivers_pci (drivers_pci)
Severity: normal CC: adrien-xx-kernel-bz, afiestas, ashermartin, asl.pavel, ben, bjorn, damiannohales, eli, erno, eugenecormier, gokcen.eraslan, hong, jamesbroadhead, john.mora, kernel, matts, miek, mr.felixoid, nhr, patrik.r.jakobsson, pavelkaroukin, robberphex, romain, sickvolo, smury, tacy.lee, thejoe, tilo, valentinrothberg, verbuecheln, vladi, yom
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 3.14-rc4 Subsystem:
Regression: No Bisected commit-id:

Description Leonardo Borda 2014-02-25 05:16:03 UTC

In the hopes that this gets some noise upstream and with the Broadcom friends.
In Linux it doesn't get listed by lspci however in OSX the camera declares itself as a Broadcom PCI device with PCI vendor ID 0x14E4 not with Apple PCI vendor ID 0x106B.

info: http://mactaris.blogspot.co.uk/2013/07/webcam-settings-20-will-support.html


# lspci
00:00.0 Host bridge: Intel Corporation Haswell-ULT DRAM Controller (rev 09)
00:02.0 VGA compatible controller: Intel Corporation Device 0a2e (rev 09)
00:03.0 Audio device: Intel Corporation Device 0a0c (rev 09)
00:14.0 USB controller: Intel Corporation Lynx Point-LP USB xHCI HC (rev 04)
00:16.0 Communication controller: Intel Corporation Lynx Point-LP HECI #0 (rev 04)
00:1b.0 Audio device: Intel Corporation Lynx Point-LP HD Audio Controller (rev 04)
00:1c.0 PCI bridge: Intel Corporation Lynx Point-LP PCI Express Root Port 1 (rev e4)
00:1c.1 PCI bridge: Intel Corporation Lynx Point-LP PCI Express Root Port 2 (rev e4)
00:1c.2 PCI bridge: Intel Corporation Lynx Point-LP PCI Express Root Port 3 (rev e4)
00:1c.4 PCI bridge: Intel Corporation Lynx Point-LP PCI Express Root Port 5 (rev e4)
00:1c.5 PCI bridge: Intel Corporation Lynx Point-LP PCI Express Root Port 6 (rev e4)
00:1f.0 ISA bridge: Intel Corporation Lynx Point-LP LPC Controller (rev 04)
00:1f.3 SMBus: Intel Corporation Lynx Point-LP SMBus Controller (rev 04)
02:00.0 Multimedia controller: Broadcom Corporation Device 1570
03:00.0 Network controller: Broadcom Corporation BCM4360 802.11ac Wireless Network Adapter (rev 03)
04:00.0 SATA controller: Samsung Electronics Co Ltd Device 1600 (rev 01)

SourcePackage: linux
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 10/29/2013
dmi.bios.vendor: Apple Inc.
dmi.bios.version: MBP111.88Z.0138.B03.1310291227
dmi.board.vendor: Apple Inc.
dmi.board.version: MacBookPro11,1
dmi.chassis.type: 10
dmi.chassis.vendor: Apple Inc.
Comment 1 Bjorn Helgaas 2014-02-25 18:03:43 UTC
According to the Mactaris link you mentioned, the camera is this device:

  02:00.0 Multimedia controller: Broadcom Corporation Device 1570

so it *is* detected by the kernel and listed by lspci.  I don't see a problem here other than the fact that no driver claims this device.
Comment 2 Leonardo Borda 2014-02-25 18:35:00 UTC
Hi Bjorn

Yes you're correct. I've changed the subject to reflect this.

Comment 3 Bjorn Helgaas 2014-06-03 23:48:26 UTC
Unfortunately, there's nothing I can do to resolve this.  We need somebody with hardware information about the device to either adapt an existing driver to work with it, or write a brand-new driver.

So I'm going to close this bug on the grounds that lack of a driver does not constitute a PCI core defect.  I know it's definitely a user experience problem; it's just that it needs to be pursued somewhere where there's more of a chance for progress.
Comment 4 Pavel Karoukin 2014-07-14 01:22:40 UTC
I would love to try to fix this (I have hardware,) but I have no clue where to start. Could someone point me into right direction?
Comment 5 Bjorn Helgaas 2014-07-14 16:46:05 UTC
The easiest would be to ask Broadcom for a Linux driver.  Failing that, you could try to find a public spec for the device, or ask Broadcom to release one.  Without a spec, it's going to be pretty hard.
Comment 6 Patrik Jakobsson 2014-07-23 21:23:03 UTC
I'm working on a driver for this webcam. Code is available at: https://github.com/patjak/bcwc_pcie

Help and/or docs would be appreciated
Comment 7 Stephan Verb├╝cheln 2014-10-13 10:09:47 UTC
I read the following about this new Webcam which could give a little hope for those who want to work on a driver:

- instead of USB, which Apple used for previous webcams, the new one is connected via PCIe
- the reason for this is that the camera is supposed to deliver raw image data (720p30fps)
- this means that the camera itself does not do any compression which would worsen image quality
- maybe this makes it easier to implement a driver

Some more info can be found here:
Comment 8 Alex Fiestas 2015-01-04 18:55:00 UTC
An effort is going on to write a driver for the device:
Comment 9 erno 2016-03-24 08:32:37 UTC
The bcwc_pcie driver is working well and rate of code changes there seems slow (https://github.com/patjak/bcwc_pcie/commits/master) - high time to get it in the kernel?
Comment 10 Robert Lu 2017-07-12 02:18:35 UTC
https://github.com/patjak/bcwc_pcie/ worked well for me!

the bcwc_pcie need firmware form apple.

Can we ask permission to distribute firmware with kernel? and submit this kmod to kernel?
Comment 11 Asher "AC" Martin 2017-12-10 08:54:27 UTC
My 'lspci" shows something slightly different on Apple Macbook 11,3

04:00.0 Multimedia controller: Broadcom Limited 720p FaceTime HD Camera

For some reason the address of the PCIE changed and the web browser can't sea it?


(December 2017)