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)
Status: RESOLVED INVALID    
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
Hi,

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

https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1276811

# 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.
dmi.chassis.version:
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.

Tks
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:
http://mactaris.blogspot.co.uk/2013/07/webcam-settings-20-will-support.html
Comment 8 Alex Fiestas 2015-01-04 18:55:00 UTC
An effort is going on to write a driver for the device:
https://github.com/patjak/bcwc_pcie
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)