The brief
The 20i had its brake pad warning light on. On a BMW that light means worn pads, the wear sensor has been ground through, and it can also flag low brake fluid or a sensor fault, so the right move is to get it checked rather than guess. He brought it in. The pads are the wear item, designed to be used up and replaced, and BMW runs a wear sensor in a pad on each axle that completes a circuit when the pad's worn down enough, lighting the dash. The 20i's fronts had reached that point. Caught at the warning stage it's a straightforward pad change and the discs are usually still fine, so they needed doing along with a fresh sensor and a brake fluid check.
The diagnosis
On the lift the front brakes confirmed it, the pads worn down to the sensor with little material left, but the discs measured up still within thickness and ran true, no scoring, caught in time. The brake fluid level and condition were fine, and the calipers and slides were freed off and checked, they were fine too. The rears still had plenty of life. So it was a front pad replacement, a fresh pair with a new wear sensor, the discs cleaned up and kept, because they were still good.
The work
The worn front pads were removed, the calipers and slide pins cleaned and greased so they move freely, the discs cleaned up, and a new genuine BMW-spec set of front pads fitted with a new wear sensor, every fastener torqued to spec. The brake pad warning was reset and the pads bedded in so they'd grip evenly from the start. A road test confirmed quiet, even, progressive front braking with a firm pedal, the warning light off.
The outcome
Quiet brakes, a firm pedal, even bite, the warning light gone, and the discs still serviceable for plenty more. The 20i went home stopping properly again. Catching pads at the wear sensor keeps it to a simple pad change instead of pads and discs later, so doing the front pair when the light called put the braking right at the cheap end of the job.